После одного неудачного обновления 1C понадобилось создать пачку таблиц в базе sql при этом система должна найти таблицу в имени которой есть определенный суффикс и при этом другого суффикса быть не должно. Так же в имя таблицы добавляется суффикс, которого быть не должно. Копируется только структура таблиц
DECLARE @table_name NVARCHAR(MAX);
DECLARE @sql NVARCHAR(MAX);
DECLARE table_cursor CURSOR FOR
SELECT t1.name
FROM sys.tables t1
WHERE t1.name LIKE '%Document%'
AND t1.name NOT LIKE '%X1';
OPEN table_cursor;
FETCH NEXT FROM table_cursor INTO @table_name;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'SELECT * INTO ' + @table_name + 'X1 FROM ' + @table_name + ' WHERE 1=0;';
EXEC sp_executesql @sql;
FETCH NEXT FROM table_cursor INTO @table_name;
END;
CLOSE table_cursor;
DEALLOCATE table_cursor;
- Курсор – Перебирает все таблицы из результата запроса.
- sp_executesql – Выполняет сгенерированный SQL-запрос для каждой таблицы.
- @table_name + ‘X1’ – Автоматически добавляет суффикс X1 к имени таблицы.
Итого
Все подходящие таблицы будут скопированы в новые с окончанием X1, но без данных.