2015-02-28 6 views
0

У меня возникли проблемы со следующим кодом:ВЫБРАТЬ @random_table SQL Server 2008 R2

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

EXEC('SELECT @value = exercicio FROM '[email protected]+' WHERE cod = 2') 

Мне нужно сделать несколько операций, как, что одна выше, в некоторых случайных таблиц. Я хочу выбрать значение и сохранить в ранее объявленной переменной. Но когда я попытался выполнить этот код, я получил следующее сообщение:

Должен объявить скалярную переменную «@value».

У меня нет идей. Какие-либо предложения?

ответ

3

Переменная @value выходит за пределы динамического оператора SQL. Вам нужно будет вернуть значение в качестве выходного параметра:

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

Спасибо. Это именно то, что я искал. –

Смежные вопросы