在SSMS中使用导入表功能时如何开启和关闭身份插入

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

我在同一个 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 导入表?

这是一个会被大量使用的功能,因此我们将不胜感激任何帮助。

sql-server
1个回答
0
投票

谢谢大家的评论。但我找到了解决方案。

在SSMS中,右键单击目标数据库并选择“任务”->“导入数据”。 提供数据源和服务器并输入访问源数据库的凭据,然后单击“下一步”。对目标数据库重复前面的步骤。单击“下一步”并选择“从一个或多个表或视图复制数据”,然后单击“下一步”。 在“源表和视图”列表中,选择要导入的表,然后(非常重要,也是我之前遗漏的)单击“编辑映射”。选择“删除目标表中的行”或“将行附加到目标表”并且(同样非常重要)如果您的目标表有一个或多个主键,请选中“启用标识插入”。单击“确定”并按照其余提示完成并从源表导入行。

拉里

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