在mssql中可以运行此查询:
Insert Into Table1 Select x, y, z From Table2 Where x = 1
当Table1的id列为identity&自动递增
我收到以下错误:
Msg 8101,Level 16,State 1,Line 1 表格' table1'中的标识列的显式值只能在使用列列表且IDENTITY_INSERT为ON时指定。
答案 0 :(得分:1)
它应该像
一样简单Insert Into Table1 (x, y, z) --<-- Explicitly mention the column names
Select x, y, z
From Table2
Where x = 1
您无需在任何地方提及ID列,它会自动生成您的Identity值并插入该列。
答案 1 :(得分:0)
您必须打开IDENTITY_INSERT
以插入身份,然后在完成后将其关闭。这就是语法的样子。
SET IDENTITY_INSERT Table1 ON;
Insert Into Table1 (column1A, column1B, column1C)
Select Column2A, Column2B, Column2C
From Table 2
Where Column2A = 1;
SET IDENTITY_INSERT Table1 OFF;