【发布时间】:2011-02-16 19:15:46
【问题描述】:
SQL Server 生成脚本在使用高级选项中的“要编写脚本的数据类型”的“仅数据”选项为表中的数据创建脚本方面做得很好。然而,生成的脚本还包括所有标识符,例如 rowid() 和整数 id。可以理解,这是为了参照完整性,但有没有办法排除这些列?
【问题讨论】:
标签: sql-server-2008 data-generation scriptgenerate
SQL Server 生成脚本在使用高级选项中的“要编写脚本的数据类型”的“仅数据”选项为表中的数据创建脚本方面做得很好。然而,生成的脚本还包括所有标识符,例如 rowid() 和整数 id。可以理解,这是为了参照完整性,但有没有办法排除这些列?
【问题讨论】:
标签: sql-server-2008 data-generation scriptgenerate
不在 SSMS 本身中。
您可以使用第三方工具,例如免费的SSMS Tools pack,它具有“从网格结果生成脚本”选项。所以你可以为SELECT col1, col3, col6 FROM MyTable 生成插入(跳过一些列)。
可能有用...
【讨论】:
在 SQL Server 中似乎没有办法做到这一点,但一种快速的解决方法是创建一个初始脚本,然后使用它来创建一个临时表。然后可以删除不需要的列,使用临时表为剩余的列生成 SQL 语句。
假设您要复制Events 表,但不想包含id:
Events 生成 SQL Server 脚本。在“高级”选项中,确保您正在复制数据和架构。还要确保您没有编写主键或外键脚本(您仍会在 SQL 脚本中看到这些列,但这将更容易从临时表中快速删除它们)。Events 到 EventsTemporary
EventsTemporary 表并为其设定种子。从此表中删除您不想复制的列,例如id。EventsTemporary 表生成第二个脚本,但这次只是复制没有架构的“数据”。在文本编辑器中打开这个新的 SQL 脚本并将表的名称改回Events
Events 表中。 【讨论】: