Ich habe SQL-Filterung, die Abfrage mit unsicheren Anzahl der Spalten zurückgibt, und Ergebnisse in gespeicherten Prozedur verwenden möchten.Wie lokale temporäre Tabelle von generierten sql zurückgegeben werden
DECLARE @RecordSelectionSql VARCHAR(MAX)
SET @RecordSelectionSql = (SELECT SQLQUERY FROM RecordSelection WHERE Id = @Id) + ' AND ([Active] = 1)'
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += ',' + CHAR(13) + CHAR(10) + CHAR(9) + name + ' ' + system_type_name
FROM sys.dm_exec_describe_first_result_set(@RecordSelectionSql, NULL, 0);
SELECT @sql = N'CREATE TABLE #TmpImport
(' + STUFF(@sql, 1, 1, N'') + '
);';
EXEC (@sql)
INSERT INTO #TmpImport
EXEC (@RecordSelectionSql)
aber ich bin immer Fehler
Invalid object name '#TmpImport'.
Wie man richtig um diesen Teil codieren?
EDIT: hinzugefügt fehlende Bedingung auf RecordSelection
EDIT2: Ich kann nicht unten verwenden, um Code, weil #TmpImport nach zerstört @RecordSelectionSql ausgeführt wird.
gibt die gleichen Fehler
Invalid object name '#TmpImport'.
Bitte lesen Sie meine Frage – amuliar
Ich habe Ihre Frage gelesen, dann antwortete ich es .. –
Ich habe nicht Sometable aber ich habe dynamische SQL in Variable @RecordSelectionSql – amuliar