Если вы хотите вставить в другую таблицу, которая также имеет столбец идентификаторов, то вам нужно явно определить список столбцов вы вставляя в и опустить identity
столбец:
insert into [server].[database].[dbo].[table1] (col1, col2)
select column1, column2
from table2
Таким образом, SQL Server можно вставить значения идентификационных данных в целевой таблице, как должен
Update:
два сценария:
(1) вы хотите вставить существующие значения из столбца идентификаторов из старой таблицы в новом один - в этом случае, вам нужно использовать SET IDENTITY_INSERT ON/OFF
в запросе:
SET IDENTITY_INSERT [192.168.1.6].[audit].[dbo].[tmpDTTransfer] ON
INSERT INTO [192.168.1.6].[audit].[dbo].[tmpDTTransfer] (id, code, transfer1)
SELECT
id, code, transfer1
FROM
tmpDTTransfer
SET IDENTITY_INSERT [192.168.1.6].[audit].[dbo].[tmpDTTransfer] OFF
(2), если вы не хотите, чтобы вставить существующие значения идентификаторов, а просто другие столбцы, и пусть SQL S ервере присвоить новые значения идентификаторов в целевой таблице, то вы не нужно использоватьSET IDENTITY_INSERT ON/OFF
в запросе:
INSERT INTO [192.168.1.6].[audit].[dbo].[tmpDTTransfer] (code, transfer1)
SELECT
code, transfer1
FROM
tmpDTTransfer
Но в любом вас, вы должны всегда четко определить список столбцов для вставки в таблицу целей.
НЕ ИСПОЛЬЗОВАТЬ:
INSERT INTO [192.168.1.6].[audit].[dbo].[tmpDTTransfer]
.......
Но вместо того, чтобы использовать
INSERT INTO [192.168.1.6].[audit].[dbo].[tmpDTTransfer] (Code, Transfer1)
.......
или
INSERT INTO [192.168.1.6].[audit].[dbo].[tmpDTTransfer] (Id, Code, Transfer1)
.......
или что вам нужно. Будьте явным о том, что вы хотите вставить!
мой table1 имеет эти три столбца идентификатор \t, код \t, transfer1 –
@JeffAtwood: тогда ** выбрать ** '' Code' и Transfer1' из таблицы 1, и убедитесь, чтобы определить ** **, которые столбцы, чтобы вставить это в вашей целевой таблице –
я использую это, но его не работает: -... SET IDENTITY_INSERT [192.168.1.6] [аудит] [DBO] [tmpDTTransfer] ON вставки в [192.168.1.6 ] [проверка]. [dbo]. [tmpDTTransfer] выбрать код, transfer1 от tmpDTTransfer SET IDENTITY_INSERT [192.168.1.6]. [audit]. [dbo]. [tmpDTTransfer] OFF –