Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL中为临时表设置标识列?_Sql Server_Tsql - Fatal编程技术网

Sql server 如何在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

如何在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,
  [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的变幻莫测,我们再做一次。(至少它在某种意义上是一致的,即它不关心
标识
列的顺序位置——如果不在那里,它只会表现得像它一样,然后继续按顺序匹配其余部分。)