HLGEM ответ непрактичен для многих таблиц.Я нахожусь в ситуации, когда мы запускаем скрипт, который время от времени запускаем, чтобы очистить dev и протестировать базы данных, что выкрикнуло одного из разработчиков.По-видимому, в настоящее время есть 22 таблицы, которые не должны быть включены в этот процесс очистки.Хорошо, что у меня была резервная копия.Я поместил имена таблиц в чистую таблицу с именем "undo" и использовал следующие строки для генерации списков столбцов:
select outside.TABLE_NAME,
stuff((select ',' + COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS as inside
where inside.TABLE_NAME = outside.TABLE_NAME
order by ORDINAL_POSITION
for xml path('')), 1, 1, '') as column_list
from INFORMATION_SCHEMA.COLUMNS as outside
where TABLE_NAME in (select table_name from dbo.undo)
group by TABLE_NAME
Затем я скопировал вывод в Excel и использовал функцию ye olde = CONCATENATE, чтобы сгенерировать все IDENTITY_INSERT.и вставьте операторы INTO, скопируйте / вставьте обратно в SSMS и вуаля!Да, Excel твой друг.