Экранирование строки при работе с sp_executesql
Всем добрый день. Сломал голову с экранированием строки. СУБД MSSQL. В хранимой процедуре использую конструкцию
exec sp_executesql 'select *
into Extdb.tmp.bulgurov_february2018_potok_status_2
from openquery([HANA],''Select * from'+ @SYSTEM+'.february2018_status_2'')';
но получаю стандартную ошибку 'Msg 102, Level 15, State 1, Line 73 Incorrect syntax near '+'. '
При этом засунув этот же кусок в SELECT получаю вполне валидную строку запроса Запрос:
declare @SYSTEM varchar (100)
set @SYSTEM = ' t2_kbulgurov'
select 'select *
into Extdb.tmp.bulgurov_february2018_potok_status_2
from openquery([HANA],''Select * from '+ @SYSTEM+'.february2018_status_2'')'
Результат:
select *
into Extdb.tmp.bulgurov_february2018_potok_status_2
from openquery
([HANA],'Select * from t2_kbulgurov.february2018_status_2')
Заранее всем спасибо!
Источник: Stack Overflow на русском