Я пытаюсь научиться использовать динамический SQL для автоматизации того, что в противном случае требовало бы много ввода. Однако это будет включать в себя перенос переменных непосредственно в имена таблиц (а не как полное имя таблицы).Переплетение переменных в имена таблиц в TSQL
При выполнении нижеследующего запроса непосредственно в SSMS я получаю вывод «успешно завершена команда» ... но я предпочел бы получить вывод запроса. Где я иду не так?
DECLARE @sql NVARCHAR(MAX)
DECLARE @cat NVARCHAR(25)
DECLARE @type NVARCHAR(25)
SET @sql = '
SELECT EntityID, ''@cat'' AS c, Subcategory'[email protected]+'
FROM WCO..Entity'[email protected]+' a
JOIN WCO..Entity'[email protected]+'Subcategory b ON a.Entity'[email protected]+'ID = b.Entity'[email protected]+'ID
JOIN WCO..'[email protected]+'Subcategory c ON b.'[email protected]+'SubcategoryID = c.'[email protected]+'SubcategoryID
WHERE
EntityID IN Ent_ID IN (728456,762360)
'
EXECUTE sp_executesql @sql, N'@cat NVARCHAR(25), @type NVARCHAR(25)', 'AdverseMedia', 'Label'
'@ cat' используется внутри' @ sql' –
я установил '@ cat' внутри' @ sql'. – JiggsJedi
Спасибо ... хорошо поймать! – user212514