Sql server 如何在SQL中为临时表设置标识列?
如何在SQL中为临时表设置标识列 必须为表“#T”中的标识列指定显式值 当IDENTITY_INSERT设置为ON或复制用户处于 插入到非复制标识列中 下面的代码块出现SQL语法错误Sql server 如何在SQL中为临时表设置标识列?,sql-server,tsql,Sql Server,Tsql,如何在SQL中为临时表设置标识列 必须为表“#T”中的标识列指定显式值 当IDENTITY_INSERT设置为ON或复制用户处于 插入到非复制标识列中 下面的代码块出现SQL语法错误 if object_id('tempdb.dbo.#t') is not null drop table #t create table #t ( [ID] [int] IDENTITY(1,1) NOT NULL, [TotalCount] int, [PercentageComplet
if object_id('tempdb.dbo.#t') is not null
drop table #t
create table #t
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[TotalCount] int,
[PercentageComplete] nvarchar(4000)
)
insert into #t
select totalcount, percentagecomplete from table_a
在表声明之后将其添加到查询中
SET IDENTITY_INSERT #t OFF
这应该可以解决它。下面的代码在我的机器上工作
CREATE TABLE #t
(
[ID] [INT] IDENTITY(1,1) NOT NULL,
[TotalCount] INT,
[PercentageComplete] NVARCHAR(4000)
)
SET IDENTITY_INSERT #t OFF
INSERT INTO #t
SELECT
totalcount, percentagecomplete
FROM
table_a
在表声明之后将其添加到查询中
SET IDENTITY_INSERT #t OFF
这应该可以解决它。下面的代码在我的机器上工作
CREATE TABLE #t
(
[ID] [INT] IDENTITY(1,1) NOT NULL,
[TotalCount] INT,
[PercentageComplete] NVARCHAR(4000)
)
SET IDENTITY_INSERT #t OFF
INSERT INTO #t
SELECT
totalcount, percentagecomplete
FROM
table_a
你犯了什么错误?这对我来说很有效。我把错误包括进去了。。显式错误您必须在上插入标识作为错误says@JeroenMostert虽然我同意指定列,但只要identity_insert处于禁用状态,查询就可以正常工作。就像在引擎里漏掉id一样。@DaleBurrell:的确如此!嗯,那是。。。相当糟糕。因为T-SQL的变幻莫测,我们再做一次。(至少它在某种意义上是一致的,它不关心
标识
列的顺序位置——如果不在那里,它将简单地表现为它,然后继续按顺序匹配其余部分。)您得到了什么错误?这对我来说很有效。我把错误包括进去了。。显式错误您必须在上插入标识作为错误says@JeroenMostert虽然我同意指定列,但只要identity_insert处于禁用状态,查询就可以正常工作。就像在引擎里漏掉id一样。@DaleBurrell:的确如此!嗯,那是。。。相当糟糕。因为T-SQL的变幻莫测,我们再做一次。(至少它在某种意义上是一致的,即它不关心标识
列的顺序位置——如果不在那里,它只会表现得像它一样,然后继续按顺序匹配其余部分。)