CREATE TABLE TestTable (id int IDENTITY (1,1), name nvarchar(100));
INSERT INTO TestTable(name) VALUES ('data1');
INSERT INTO TestTable(name) VALUES ('data2');
Declare @Identity as int
set @identity=IDENT_CURRENT ('TestTable')
SET IDENTITY_INSERT TestTable ON;
¿Cómo puedo lograr esta funcionalidad?Insertar datos con Identity_Insert está activado con Insertar en la Tabla1 Seleccionar * de la Tabla2
INSERT INTO TestTable
Select * from
(
Select 55 as a,'data55' as b
Union
Select 56 as a,'data55' as b
)n
Cuando esto se sustituye entonces .. Msg 8101, nivel 16, estado 1, línea 7 un valor explícito para la columna de identidad en la tabla 'TestTable' sólo se puede especificar cuando se utiliza una lista de columnas y IDENTITY_INSERT está activado.
INSERT INTO TestTable (id, name) VALUES (55, 'data55');
INSERT INTO TestTable (id, name) VALUES (56, 'data55');
SET IDENTITY_INSERT TestTable OFF;
DBCC CHECKIDENT (TestTable, reseed,@identity)
INSERT INTO TestTable(name) VALUES ('data3');
Select * from TestTable
Drop table TestTable
Lea de nuevo el mensaje de error: "... solo se puede especificar cuando se utiliza una lista de columnas ** y ** IDENTITY_INSERT está activado". En su ejemplo de unión, no está proporcionando una lista de columnas. –