SQL Server 2008 生成数据脚本并检查现有记录

问题描述 投票:0回答:3

我正在使用 SQL Server 2008 Management Studio

Generate Scripts...
向导为数据库中的各个表生成仅数据脚本。

问题是它生成了一堆插入语句,但不包含任何类型的 if 存在逻辑。因此,我得到了已存在记录的主键异常。

有谁知道一种方法来编写表中的数据脚本,以便检查记录是否已存在?

sql sql-server-2008 wizard
3个回答
1
投票

最简单的方法是创建一个视图,仅选择具有唯一值的行作为新主键,然后从该视图生成数据脚本。

如果您向我们展示源表的 CREATE TABLE 脚本以及新的主键是什么,我可以向您展示如何创建这样的视图。


0
投票

我猜你的意思是存在 FK 错误,因为某些表在将数据插入其引用的表中之前需要存在数据。

生成脚本向导将为您提供一组插入脚本,但不会为您排序,您需要做的是智能地所有子表插入脚本应早于父表排序,因为一旦数据填充到父表中表所有引用的表都有值。


-2
投票

编写自己的存储过程来生成插入脚本, Chetan Naithani 先生已经做得很好了:

使用“if Exists”条件生成现有行的插入脚本

© www.soinside.com 2019 - 2024. All rights reserved.