我正在使用 SQL Server 2008 Management Studio
Generate Scripts...
向导为数据库中的各个表生成仅数据脚本。
问题是它生成了一堆插入语句,但不包含任何类型的 if 存在逻辑。因此,我得到了已存在记录的主键异常。
有谁知道一种方法来编写表中的数据脚本,以便检查记录是否已存在?
最简单的方法是创建一个视图,仅选择具有唯一值的行作为新主键,然后从该视图生成数据脚本。
如果您向我们展示源表的 CREATE TABLE 脚本以及新的主键是什么,我可以向您展示如何创建这样的视图。
我猜你的意思是存在 FK 错误,因为某些表在将数据插入其引用的表中之前需要存在数据。
生成脚本向导将为您提供一组插入脚本,但不会为您排序,您需要做的是智能地所有子表插入脚本应早于父表排序,因为一旦数据填充到父表中表所有引用的表都有值。
编写自己的存储过程来生成插入脚本, Chetan Naithani 先生已经做得很好了: