Sql 设置标识\u在我的参数中插入它不起作用
我试图将值插入到具有标识的表中,我知道在插入之前必须使用:Sql 设置标识\u在我的参数中插入它不起作用,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我试图将值插入到具有标识的表中,我知道在插入之前必须使用:SET identity\u insert 我所执行的: DECLARE @TABLE_NAME NVARCHAR(200), @QUERY NVARCHAR(500) SET @TABLE_NAME = 'devListaTrabajo' SET @QUERY = 'SET IDENTITY_INSERT ' + @TABLE_NAME + ' ON' PRINT @QUERY EXEC (@QUERY) INSERT I
SET identity\u insert
我所执行的:
DECLARE @TABLE_NAME NVARCHAR(200), @QUERY NVARCHAR(500)
SET @TABLE_NAME = 'devListaTrabajo'
SET @QUERY = 'SET IDENTITY_INSERT ' + @TABLE_NAME + ' ON'
PRINT @QUERY
EXEC (@QUERY)
INSERT INTO devListaTrabajo
(lisId,lisDescripcion,lisEstado,topId,parCLS,parcod)
VALUES (1,'H',1,1,'H','LH')
我的结果是:
SET IDENTITY_INSERT devListaTrabajo ON
Msg 544, Level 16, State 1, Line 79
Cannot insert explicit value for identity column in table 'devListaTrabajo' when IDENTITY_INSERT is set to OFF.
如果您问我为什么不在没有query inside参数的情况下使用normal语句,那是因为我计划执行一个表更改周期,并且我打算使用SET IDENTITY\u INSERT
也许我为了使用这个语句跳过了一些SQL规则。请给出解释或其他解决方法。EXEC()命令的内容在与代码其余部分不同的上下文中运行。该上下文运行、完成并返回到从未更改标识插入的原始上下文
如果希望这样动态地执行此操作,则必须将整个语句放入
@QUERY
变量。EXEC()命令的内容在与其余代码不同的上下文中运行。该上下文运行、完成并返回到从未更改标识插入的原始上下文
如果您想这样动态地执行此操作,则必须将整个语句放入
@QUERY
变量中。另请参见,我已经在查询中包含了insert,它运行得非常好,谢谢!同样非常好,我已经在查询中包含了insert,它运行得非常完美,谢谢!