2016-03-31 4 views
1

Я пытаюсь найти альтернативу настройке содержимого переменной как большого запроса, в котором я динамически меняю значения. Можно ли сделать что-то вроде этого?SQL - выбор из переменной

declare @serv nvarchar(max) 
set @serv = '[linkedServName].[dataBaseName]' 
select top 10 * from @serv.dbo.someTable 

Если да, не могли бы вы показать мне правильный синтаксис?

Спасибо за ваше время

+1

вы не можете использовать этот способ, необходимо использовать динамический SQL :) –

+1

Вам нужно 'Exec («запрос»)' для этого –

+0

я вижу, спасибо всем – CM2K

ответ

2

Если вы хотите параметризовать сервер и базу данных, выбрать из, то вы должны использовать динамический SQL. Попробуйте это:

declare @serv nvarchar(max) 
declare @qry nvarchar(max) 

set @serv = '[linkedServName].[dataBaseName]' 
set @qry = 'select top 10 * from ' + @serv + '.dbo.someTable' 

exec(@qry) 
+0

я использовал это как-то похоже на это. Так это был бы единственный способ пойти тогда? Я пытался избежать именно этой ситуации: в которой у меня есть дополнительная переменная. Спасибо за ответ, это действительно хороший и ясный пример. – CM2K

+0

@ CM2K Я хочу параметризовать имя, тогда динамический sql - единственный способ, которого я боюсь. –

+0

Я понимаю, спасибо за разъяснение – CM2K

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