如何在SQL Server中将值设置为声明的变量

Sri*_*vas 0 sql-server sequences sql-server-2012

如何在SQL Server中将值设置为声明的变量.

DECLARE  @V_SEQUENCE INT,  @V_SEQUENCENAME NVARCHAR(MAX);
SET @V_SEQUENCENAME = 'dbo.MYSEQ';   
EXEC('SELECT @V_SEQUENCE = NEXT VALUE FOR  ' + @V_SEQUENCENAME)
SELECT @V_SEQUENCE
Run Code Online (Sandbox Code Playgroud)

我在这里得到一个错误:

必须声明标量变量"@V_SEQUENCE"'

请告诉我如何获得结果@V_SEQUENCE.

Gor*_*off 6

您想要从执行中传递一个值.我建议您使用sp_executesql:

DECLARE  @V_SEQUENCE INT, @V_SEQUENCENAME NVARCHAR(MAX), @SQL NVARCHAR(MAX);
SET @V_SEQUENCENAME = 'dbo.MYSEQ'; 
SELECT @SQL = 'SELECT @V_SEQUENCE = NEXT VALUE FOR  ' + @V_SEQUENCENAME;

EXEC sp_executesql @SQL, N'@V_SEQUENCE INT OUTPUT', @V_SEQUENCE = @V_SEQUENCE OUTPUT;

SELECT @V_SEQUENCE;
Run Code Online (Sandbox Code Playgroud)