我在同一个 SQL Server 上有两个数据库。一个用于生产(供用户使用),另一个是用于测试的测试数据库。测试数据库与生产数据库具有相同的表和结构,并且大多数表都有主键。
直到最近,该客户端还在使用非常旧的 SQL Server 和 SQL Server Enterprise Manager。使用 SQL Server 企业管理器的数据转换功能,将数据从生产数据库复制到测试数据库非常简单。
现在客户端已将所有数据库移至新的 SQL Server 并安装了 SQL Server Management Studio (SSMS) 来维护数据库。我的问题是,当我尝试使用 SSMS 中的
Import Data
功能从生产数据库复制表中的数据时,它失败并提示无法将数据复制到目标数据源上的主字段中。
我尝试在 SSMS 查询中使用
SELECT
和 INSERT INTO
语句,其中 SET INSERT_IDENTITY ON
用于目标表,作为查询的第一个语句,OFF
作为查询的最后一个语句。
但是当我运行此查询时,我收到一条错误消息,指出在查询中使用
INSERT_IDENTITY
时,我必须提供要导入的列的列表。大多数表格的列太多,无法实现此目的。
当大多数(如果不是全部)表都包含主键时,如何使用 SSMS 导入表?
这是一个会被大量使用的功能,因此我们将不胜感激任何帮助。
谢谢大家的评论。但我找到了解决方案。
在SSMS中,右键单击目标数据库并选择“任务”->“导入数据”。 提供数据源和服务器并输入访问源数据库的凭据,然后单击“下一步”。对目标数据库重复前面的步骤。单击“下一步”并选择“从一个或多个表或视图复制数据”,然后单击“下一步”。 在“源表和视图”列表中,选择要导入的表,然后(非常重要,也是我之前遗漏的)单击“编辑映射”。选择“删除目标表中的行”或“将行附加到目标表”并且(同样非常重要)如果您的目标表有一个或多个主键,请选中“启用标识插入”。单击“确定”并按照其余提示完成并从源表导入行。
拉里