我有一个大表,对于测试我想从SQL Server为这些列生成一个脚本。我认为没有这个选项......只是一个完整的脚本,我需要删除每个。
只是为了确认。
谢谢!谁知道呢。
答案 0 :(得分:0)
您可以设置查询系统表的语句 - 可能比它的价值更麻烦,但仍然可行:
DECLARE @tablename VARCHAR(255) = 'UnprocessedQueueData';
WITH columns
AS ( SELECT STUFF(( SELECT ',' + c.name
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id
WHERE t.name = @tablename
AND c.is_nullable = 0
AND c.is_identity = 0
ORDER BY c.name
FOR
XML PATH('')
), 1, 1, '') col
)
SELECT 'INSERT INTO ' + t.name + ' ( ' + columns.col
+ ' ) SELECT * FROM OtherTable;'
FROM sys.tables t
CROSS JOIN columns
WHERE t.name = @tablename