你能帮忙吗。
我正在运行以下查询:
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
Run Code Online (Sandbox Code Playgroud)
返回的错误是:
消息 8101,级别 16,状态 1,第 3
行 表“sites_dynamic”中标识列的显式值只能在使用列列表且 IDENTITY_INSERT 为 ON 时指定。
谁能帮我?我是新来的
使用set identity_insert <tablename> on插入语句时必须包含列列表。
这是正确的方法:
set identity_insert targetTable on
insert into targetTable (col1, col2 [, coln])
select col1, col2 [, coln]
from sourceTable
set identity_insert targetTable off
Run Code Online (Sandbox Code Playgroud)
正如 Nick.McDermaid 所评论的那样 - 始终包含列列表是最佳做法。