Создание таблиц sql с условиями

После одного неудачного обновления 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, но без данных.

linux как узнать сколько свободного места на диске

Для получения информации о свободном дисковом пространстве используется команда df (Disk Free).

Наиболее употребительно применение команды с опцией -h, задающей вывод информации в удобном для чтения формате.
df -h