繁体   English   中英

SQL Server:插入 TempTable 时出错

[英]SQL Server : error on insert into TempTable

我创建了一个@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;

我收到这些错误:

消息 102,级别 15,状态 1,第 2 行
'@TempTable' 附近的语法不正确。

消息 102,级别 15,状态 1,第 4 行
'@TempTable' 附近的语法不正确。

如何为@TempTable打开身份插入?

您不能更改 Sql Server 中的table variable 所以不可能在表变量上SET IDENTITY_INSERT ON/OFF

尝试使用#temp table而不是 table 变量。

这是相关的连接项: 表变量上的 SET IDENTITY INSERT

注意:当您设置Identity_insert ON时,您需要在Insert提及列列表

无法更改表变量 但是,您可以声明一个临时表并执行此任务。 检查下面的代码。

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;

注意:当 IDENTITY_INSERT 为 ON 时,您的插入查询应该是这样的。

INSERT INTO #TEMPTABLE([EMPENROLLNUMBER], [DATE], ROWUNIQ) VALUES(2, '2017-08-11', 4) 

当它关闭时,您可以像这样插入。

INSERT INTO #TEMPTABLE VALUES(3, '2017-08-11') 

希望现在已经很清楚了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM