sql >> Database teknologi >  >> RDS >> Sqlserver

dynamisk oprettelse af #temp-tabellen og derefter brugt til at indsætte dataene

Dette skyldes, at omfanget af EXEC erklæring er forskellig fra omfanget af den indeholdende sproc. Det vil sige dit opkald til EXEC opretter den midlertidige tabel, og derefter slettes den automatisk som scope for EXEC er Venstre. Du skal grundlæggende gøre det hele inde i en EXEC erklæring:

DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
            FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
            INSERT INTO #temp ...'

EXEC(@sql)


  1. Sådan fungerer LEFT()-funktionen i MySQL

  2. Hvordan bruger du scriptvariabler i psql?

  3. brug af GROUP BY i mysql 8

  4. Sådan tilføjes ELLER slip kolonne fra CDC-aktiveret tabel uden at miste data i SQL Server-databasen - SQL Server-vejledning