Estoy utilizando un conjunto de datos para insertar datos que se convierten desde una base de datos anterior. El requisito es mantener los números Order_ID actuales.Desactiva IDENTITY_INSERT para Dataset insert
He intentado usar:
SET IDENTITY_INSERT orders ON;
Esto funciona cuando estoy en SqlServer Management Studio, estoy en condiciones de éxito
INSERT INTO orders (order_Id, ...) VALUES (1, ...);
Sin embargo, no permite que lo haga a través del conjunto de datos que estoy usando en mi script de conversión. Que se ve básicamente así:
dsOrders.Insert(oldorderId, ...);
He ejecutado el SQL (SET IDENTITY_INSERT órdenes ON) durante el proceso también. Sé que solo puedo hacer esto contra una mesa a la vez y lo estoy haciendo.
me siguen dando esta excepción:
Excepción al intentar insertar un valor en la tabla de pedidos System.Data.SqlClient.SqlException: No se puede insertar valor explícito para la columna de identidad en la tabla 'órdenes' cuando IDENTITY_INSERT está configurado en OFF.
¿Alguna idea?
actualización
ALEXS & AlexKuznetsov han mencionado que SET_IDENTITY_INSERT es un ajuste de nivel de conexión, sin embargo, cuando miro el SQL en SQLProfiler, noto varios comandos.
- Primera -
SET IDENTITY_INSERT DEAL ON
- Segundo -
exec sp_reset_connection
- Tercera de n - mis varios comandos SQL como determinadas & de inserción
Siempre hay un exec sp_reset_connection
entre los comandos, sin embargo, creo que esta es responsable de la pérdida de valor en la configuración Identity_Insert.
¿Hay alguna manera de evitar que mi conjunto de datos realice el restablecimiento de la conexión?
Lol, tuve el mismo error tonto – Jupaol