SET IDENTITY_INSERT 在我的参数中它不起作用
SET IDENTITY_INSERT Inside my parameter it does not work
我正在尝试将值插入到具有标识的 table 中,我知道我必须在插入之前使用:SET IDENTITY_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.
Result Image
如果你问我为什么不使用没有query inside参数的普通语句,那是因为我打算做一个table改变的循环,我打算使用SET IDENTITY_INSERT
.
也许我在使用此语句时跳过了一些 SQL 规则。拜托,我要求解释或其他解决方案。
EXEC()
命令的内容 运行 在与其余代码不同的上下文中。该上下文 运行 完成,您 return 到身份插入从未更改的原始上下文。
如果你想让它像那样动态发生,你必须把整个语句放到@QUERY
变量中。
我正在尝试将值插入到具有标识的 table 中,我知道我必须在插入之前使用:SET IDENTITY_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.
Result Image
如果你问我为什么不使用没有query inside参数的普通语句,那是因为我打算做一个table改变的循环,我打算使用SET IDENTITY_INSERT
.
也许我在使用此语句时跳过了一些 SQL 规则。拜托,我要求解释或其他解决方案。
EXEC()
命令的内容 运行 在与其余代码不同的上下文中。该上下文 运行 完成,您 return 到身份插入从未更改的原始上下文。
如果你想让它像那样动态发生,你必须把整个语句放到@QUERY
变量中。