我创建了一个@TempTable
,其中包含一个用于标识的附加列。
以下是查询:
declare @TempTable table
(
[EmpEnrollNumber] [nvarchar](MAX),
[Date] [datetime],
rowuniq int identity(1,1)
);
SET IDENTITY_INSERT @TempTable ON;
INSERT INTO @TempTable
SELECT *
FROM [Tempdata]
SET IDENTITY_INSERT @TempTable OFF;
我收到这些错误:
Msg 102,Level 15,State 1,Line 2
' @ TempTable'附近的语法不正确。Msg 102,Level 15,State 1,Line 4
附近的语法不正确
' @ TempTable'。
如何为@TempTable
打开身份插入?
答案 0 :(得分:1)
无法更改表变量。但是,您可以声明临时表并执行此任务。检查以下代码。
CREATE TABLE #TEMPTABLE([EMPENROLLNUMBER] [NVARCHAR](MAX), [DATE] [DATETIME],ROWUNIQ INT IDENTITY(1,1));
SET IDENTITY_INSERT #TEMPTABLE ON;
INSERT INTO #TEMPTABLE SELECT * FROM [TEMPDATA]
SET IDENTITY_INSERT #TEMPTABLE OFF;
注意:当ON中的IDENTITY_INSERT时,您的插入查询应该是这样的。
INSERT INTO #TEMPTABLE([EMPENROLLNUMBER], [DATE], ROWUNIQ) VALUES(2, '2017-08-11', 4)
当它关闭时,您可以这样插入。
INSERT INTO #TEMPTABLE VALUES(3, '2017-08-11')
希望现在很清楚。