Присвойте результаты Dynami c sql в переменную - PullRequest
0 голосов
/ 18 марта 2020

То, что я хочу сделать, - это получить «значение результата» запроса в переменной @statement.

код выглядит следующим образом:

declare @ID int, @name varchar (200), @statement varchar (200)

set @ID = 25
set @name = 'select FirstName + '' '' + LastName as ''Full Name''
             from person.person  
             where BusinessEntityID = ' + cast (@ID as varchar)'
set @statement = 'My name is @name'

Я хотел бы показать результаты @statement, и я знаю, что должен использовать sp_execute sql для выполнения моего запроса @name, и вывести его @statement, но я не уверен, как это сделать.

Любые мысли и спасибо!

Ответы [ 2 ]

3 голосов
/ 18 марта 2020

Немного смущен. Нет необходимости в динамике c SQL

Пример

declare @ID int, @name varchar (200)
set @id=25

set @name = 'My name is ' + (select FirstName + ' ' + LastName 
                               from person.person  
                               where BusinessEntityID = @ID
                             )
0 голосов
/ 18 марта 2020

Вы можете использовать concat():

select top (1) @name = concat('My name is ', FirstName, ' ', LastName)
from person.person  
where BusinessEntityID = @ID;

Я бы использовал top (1), если совпадающая пара BusinessEntityID имеет несколько строк.

...