以前问题的后续问题:Force SET IDENTITY_INSERT to take effect faster from MS Access
我正在从MS Access后端升级到SQL Server后端。许多表都有自动编号主键。我正在尝试按如下方式填充它们(伪代码):
ExecutePassThru "SET IDENTITY_INSERT dbo.Accounts ON"
db.Execute "INSERT INTO sql_Accounts SELECT * FROM mdb_Accounts"
ExecutePassThru "SET IDENTITY_INSERT dbo.Accounts OFF"
在上面的代码中,sql_Accounts
是连接到SQL Server中Accounts表的链表,mdb_Accounts
是连接到mdb中Accounts表的链表。这失败了,错误
当IDENTITY_INSERT设置为OFF时,无法在表'Accounts'中为identity列插入显式值。
我启动了SQL Server Profiler以试图解决问题,问题是我的示例中的每行代码可能使用或不使用不同的服务器进程ID(SPID)。换句话说,他们使用与后端的不同连接。
有没有办法确保他们都使用相同的连接?
答案 0 :(得分:1)
可能有一个更优雅的解决方案,但这是一次性转换,并且尝试通过连接重用进行复杂的事情并不值得深入探讨。