SQL Server - 是否有生成插入脚本的选项只是为了不为空列(必需列)?

时间:2014-12-17 13:49:36

标签: sql-server insert sql-scripts

我有一个大表,对于测试我想从SQL Server为这些列生成一个脚本。我认为没有这个选项......只是一个完整的脚本,我需要删除每个。

只是为了确认。

谢谢!谁知道呢。

1 个答案:

答案 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