SQL Server Management Studio有能力生成脚本。 问题是,它打破了身份列。 目前我找不到此错误的链接,但微软基本上将其作为“function”来声明。
这对于:
有没有一个简单的解决scheme,这实际上有效?
Scriptio在SQL Server 2005中运行良好,来自SQL Server MVP Bill Graziano。 看起来你不得不为SQL Server 2008重新编译和重新编译。
如果你正在寻找第三方工具, 红门的SQL比较是伟大的(全面披露 – 我是一个红门的朋友 )。
这两个红门工具非常适合比较数据库之间的差异和编写结构或数据差异的脚本。
Red Gate Sql Compare – 用于结构比较和复制
红门Sql数据比较 – 用于数据比较和复制
他们销售一个包含两种产品的SQL包。
我们已经广泛地使用它们来设置开发数据库并复制变更等等。 您也可以使用“数据比较”来在数据库之间同步数据。
我还没有完全审查这个工具,但看看它。 当我下载它时是免费的(我相信它仍然是)
这个问题有两个部分。
首先,如何复制/移动具有标识字段的数据?
如果您要在两台或更多台服务器之间定期进行此操作,则需要将身份种子设置为不同。 例如,如果您有两台服务器共享一个包含less量logging的表,则可以设置一个身份种子为1,另一个身份种子为1,000,000。 一台服务器将在1处启动它的标识字段并且向上,另一台在较高的数字处。 当然,你还是要留意这一点,以确保你不会结束重叠的logging。
然后,当您想要将数据从一台服务器复制到另一台服务器时,可以使用SET IDENTITY_INSERT命令在插入前加上引号,如下所示:
http://msdn.microsoft.com/en-us/library/ms188059.aspx
然后,您可以暂时禁用身份字段,以便将数据从一台服务器泵送到另一台服务器。
其次,你如何复制/移动数据?
有很多方法可以做到这一点:
如果要在生产和开发/testing之间移动数据,请将生产数据作为另一个数据库名称恢复到您的开发/testing服务器,然后在那里进行数据库同步。 它会更快,它不会影响你的生产框,如果你做错了什么(如同步数据错误的方式),它不会破坏生产。
你有没有尝试微软的数据库发布向导 ?
免责声明:我只使用SQL 2005 …不知道它是否适用于SQL 2008。
嘿,你为什么不试试SQL Server 2008中包含的“导入和导出向导”(开始 – >程序 – > Microsoft SQL Server 2008 – >导入和导出向导)。
select表格时,请确保编辑原点和目的地之间的映射,并检查“启用标识插入”选项。 这将允许你保持你的身份外键不变。