SQL - Temptable Identity Column无法正常工作

时间:2017-08-11 05:22:37

标签: sql sql-server

我创建了一个#TempTable。创建它的原因是在Main表中我没有Unique列,所以我将Main表中的数据复制到#TempTable,并带有一个带有Identity的额外列。

CREATE TABLE #TEMPTABLE
(
     rowuniq INT IDENTITY(1,1), 
     [CARDNO] [CHAR](10), 
     [OFFICEPUNCH] [DATETIME]
);

SET IDENTITY_INSERT #TEMPTABLE ON;

INSERT INTO #TEMPTABLE(rowuniq, CARDNO,OFFICEPUNCH) 
    SELECT CARDNO, OFFICEPUNCH 
    FROM [Tempdata]

SET IDENTITY_INSERT #TEMPTABLE OFF;

错误:

  

INSERT语句的选择列表包含的项目少于插入列表。 SELECT值的数量必须与INSERT列的数量匹配。

1 个答案:

答案 0 :(得分:0)

您已在INSERT INTO声明中定义了三个列 - 但SELECT仅提供两个

更改您的代码,以便IDENTITY列中插入值:

-- NOT NEEDED! SET IDENTITY_INSERT #TEMPTABLE ON;

INSERT INTO #TEMPTABLE(CARDNO, OFFICEPUNCH) 
    SELECT CARDNO, OFFICEPUNCH 
    FROM [Tempdata]

-- NOT NEEDED! SET IDENTITY_INSERT #TEMPTABLE OFF;