Определить переменную Concatinate в динамическом запросе

Я строю динамический запрос. Внутри него я объявляю переменные. Теперь я хочу объединить эту переменную в моем запросе вставки

declare @qry nvarchar(MAX)
select @qry='Declare @var1 nvarchar(10); set @var1 =''abcd''
insert into mytable (col1) values ('+@var1+')'

Когда я выполняю этот код, он дает мне ошибку

Необходимо объявить скалярную переменную "@var1".

Но если я объявляю @ var1 вне @qry, то он работает нормально. У меня проблема с конкатенацией значения переменной.

Пожалуйста помоги

Спасибо

1 ответ

Тебе этого не сделать. Контекст выполнения динамического запроса отличается от внешнего скрипта.

это будет работать

declare @qry nvarchar(MAX)
Declare @var1 nvarchar(10); 
set @var1 ='abcd'
select @qry='insert into mytable (col1) values ('+@var1+')'
Другие вопросы по тегам