2016-04-25 5 views
0

Entschuldigung, wenn dies gefragt wurde, aber meine eigentliche Frage ist wirklich schrecklich schwierig, mit der Suche abzufragen.Construct einfügen Abfrage basierend auf Spalten aus einer anderen Tabelle Variable

Ich habe eine Tabelle Variable, die ich angelegt habe, welche die IDs, Spaltennamen und Tabellennamen von anderen Tabellen so constains dass ein Beispiel Reihe besteht aus

ID, Säule, Tabelle

2 , Assetname, dbo.Asset

ich jetzt in einer anderen Tabelle Variable die Ergebnisse einer Abfrage einfügen mag, die aus dieser Reihe besteht, für zB:

Einsatz in @ table2 .. 'AssetName aus dbo.Asset' auswählen [die Ergebnisse, speziell die AssetName-Spalte aus der Asset-Tabelle - vielleicht 10 Zeilen im Wert]

Bitte lassen Sie mich wissen, wie Sie das am besten angehen.

Antwort

1

Sie müssen das dynamisch tun. Zum Beispiel, so etwas wie (nicht getestet):

DECLARE @SQL NVARCHAR(MAX) 

SELECT @SQL = N'INSERT INTO @Table2 SELECT ' + QUOTENAME(Column) + N' FROM ' + QUOTENAME(Table) 
FROM @Table1 

EXEC sp_executesql @SQL 

ich bin nicht ganz sicher, ob Sie nicht eine globale Tabellenvariable für diese (@@Table2) benötigen.

+0

Oder verwenden Sie eine temporäre Tabelle, die vor dem dynamischen SQL deklariert ist. –

+0

Ich würde anmerken, dass Sie die Tabellenvariable innerhalb des dynamischen SQL-Codes deklarieren mussten, um erkannt zu werden, aber unabhängig davon, trotz meiner Unwissenheit in diesem Bereich scheint dies eindeutig der Weg zu sein. – notsoobvious

Verwandte Themen