Продолжение более раннего вопроса: Принудительный ввод SET IDENTITY_INSERT для более быстрого вступления в силу с MS Access
Я нахожусь в процессе сокращения с MSДоступ к бэкенду 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
является связанной таблицей, связанной с таблицей Accounts в SQL Server, а mdb_Accounts
является связанной таблицейподключен к таблице счетов в mdb.Это происходит с ошибкой,
Невозможно вставить явное значение для столбца идентификаторов в таблице «Учетные записи», если для параметра IDENTITY_INSERT установлено значение OFF.
Я запустил SQL Server Profiler дляпопытайтесь выяснить проблему, и проблема в том, что каждая строка кода в моем примере может использовать или не использовать разные идентификаторы процессов сервера (SPID).Другими словами, они используют разные соединения с бэкэндом.
Есть ли какой-нибудь способ убедиться, что все они используют одно и то же соединение?