我创建了一个#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列的数量匹配。
答案 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;