Подтвердить что ты не робот

Добавление столбца ко всем пользовательским таблицам в t-sql

Мне нужно добавить столбец флажка удаления ко всем 40 пользовательским таблицам в базе данных. Я мог бы написать script для цикла через sys.tables, но я решил проверить и посмотреть, есть ли у кого-либо лучшее решение или предварительно созданный sql для этого сценария.

4b9b3361

Ответ 1

Существует недокументированная, но хорошо известная хранимая процедура sp_msforeachtable:

exec sp_msforeachtable 'alter table ? add flag bit not null default 0';

Ответ 2

Нет, это ручная петля.

Или вы могли бы создать единую инструкцию SQL, конечно...

SELECT 
    'ALTER TABLE ' + T.name + ' ADD foo int NULL'
FROM
    sys.tables AS T
WHERE
    T.is_ms_shipped = 0

Или недокументированный

EXEC sys.sp_MSforeachtable 'ALTER TABLE ? ADD foo int NULL'