Ich versuche zu lernen, dynamisches SQL zu verwenden, um zu automatisieren, was sonst viel Typisierung erfordern würde. Dies würde jedoch beinhalten, dass Variablen direkt in Tabellennamen (nicht als der gesamte Tabellenname) eingefügt werden.Variablen in Tabellennamen in TSQL weben
Wenn ich die folgende Abfrage direkt in SSMS ausführe, bekomme ich die Ausgabe "Befehl (e) erfolgreich abgeschlossen" ... aber ich möchte lieber die Abfrage ausgeben. Wo gehe ich falsch?
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' innen' @ verwendet wird sql' –
Ich reparierte die '@ cat' innerhalb' @ sql'. – JiggsJedi
Danke ... guter Fang! – user212514