Sql server SQL标识插入问题
你能帮忙吗 我正在运行以下查询:Sql server SQL标识插入问题,sql-server,Sql Server,你能帮忙吗 我正在运行以下查询: set identity_insert sites_dynamic ON insert into sites_dynamic select * from gpbatt_archive.dbo.sites_dynamic where site_serial_number = 49955 set identity_insert sites_dynamic OFF set identity_insert sites_static
set identity_insert sites_dynamic ON
insert into sites_dynamic
select *
from gpbatt_archive.dbo.sites_dynamic
where site_serial_number = 49955
set identity_insert sites_dynamic OFF
set identity_insert sites_static ON
insert into sites_static
select *
from gpbatt_archive.dbo.sites_static
where static_site_id in (select static_site_id
from gpbatt_archive.dbo.sites_dynamic
where site_serial_number = 49955)
set identity_insert sites_static OFF
返回的错误为:
Msg 8101,第16级,状态1,第3行只有在使用列列表且“identity\u INSERT”处于启用状态时,才能为表“sites\u dynamic”中的标识列指定显式值
有人能帮我吗?我不熟悉这一点在上使用
set identity\u insert时,您的insert语句必须包含列列表
以下是正确的方法:
set identity_insert targetTable on
insert into targetTable (col1, col2 [, coln])
select col1, col2 [, coln]
from sourceTable
set identity_insert targetTable off
正如Nick.McDermaid所评论的那样-最好的做法是始终包含列列表。当使用set identity\u insert on
时,您的insert语句必须包含列列表
以下是正确的方法:
set identity_insert targetTable on
insert into targetTable (col1, col2 [, coln])
select col1, col2 [, coln]
from sourceTable
set identity_insert targetTable off
正如Nick.McDermaid所评论的那样——最好始终包含列列表。可能重复的可能重复的可能重复的可能我添加的内容:不管怎样,您都应该始终包含列列表@尼克·麦克德迈德:你完全正确。把它编辑到我的答案中。我想补充一点:不管怎样,你都应该包括列和列表@尼克·麦克德迈德:你完全正确。把它编辑成我的答案。