SQL Server:插入TempTable时出错

时间:2017-08-11 04:32:35

标签: sql sql-server sql-server-2008

我创建了一个@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打开身份插入?

1 个答案:

答案 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') 

希望现在很清楚。