我找到了我的问题的答案,他们都说下面的语法应该有效。它对我不起作用。我的输出变量总是NULL
所以任何帮助都会受到赞赏。
DECLARE @SqlCommand NVARCHAR(1000),
@ParamDefinition nvarchar(500),
@Id INT
SET @SqlCommand = N'INSERT INTO [server].db.dbo.table(Title) VALUES(''Insert Into table From othertable Test'') SELECT @Id = SCOPE_IDENTITY()'
SET @ParamDefinition = N'@Id integer OUTPUT'
EXECUTE sp_executesql @SqlCommand, @ParamDefinition, @Id OUTPUT
Select @Id
我的Select @Id
每次都会返回NULL
,但该行会被插入到表格中。
我在Stack Overflow上发现了四到五个结果,表明我的代码应该有效并且应该返回ID。但事实并非如此。
我正在使用第三方服务器,是否有可能抛出我没有看到的错误。
感谢您的帮助。
注意:下面的语句返回Scope_Identity()的值。问题是我不知道如何在变量中捕获该值。
EXEC [Server].[db].[dbo].sp_executesql N'
INSERT INTO [server].db.dbo.table(Title) VALUES(''Test Title Insert'')
SELECT SCOPE_IDENTITY()'
我已经尝试了下面的语法而没有运气
DECLARE @Id INT
EXEC @Id = [Server].[db].[dbo].sp_executesql N'
INSERT INTO [server].db.dbo.table(Title) VALUES(''Test Title Insert'')
SELECT SCOPE_IDENTITY()'
选择@Id - @Id始终为NULL。