SELECT 来自@random_table SQL 服务器 2008 R2

SELECT FROM @random_table SQL Server 2008 R2

我遇到以下代码问题:

DECLARE @table varchar(50), @value int 
SET @table = 'randomTable'

EXEC('SELECT @value = exercicio FROM '+@table+' WHERE cod = 2')

我需要在一些随机表中做一些像上面那样的操作。我想 select 一个值并存储在先前声明的变量中。但是当我尝试执行该代码时,我收到了以下消息:

Must declare the scalar variable "@value".

我没主意了。有什么建议么?

@value 变量在动态 SQL 语句的范围之外。您需要 return 该值作为输出参数:

DECLARE 
      @table nvarchar(251) = N'dbo.randomTable'
    , @SQL nvarchar(MAX) 
    , @value int;
SET @SQL = N'SELECT @value = exercicio FROM '+@table+N' WHERE cod=2';
EXEC sp_executesql @SQL, N'@value int OUTPUT', @value OUT;