sql >> Database >  >> RDS >> Sqlserver

dynamisch de #temp-tabel maken en vervolgens gebruiken om de gegevens in te voegen

Dit komt omdat het bereik van de EXEC statement verschilt van de reikwijdte van de bevattende sproc. Dat wil zeggen, uw oproep aan EXEC is de tijdelijke tabel aan het maken en wordt dan automatisch verwijderd als het bereik voor de EXEC is links. Je moet eigenlijk alles binnen de één . doen EXEC verklaring:

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

EXEC(@sql)


  1. Gebruik TYPEPROPERTY() om informatie over een gegevenstype in SQL Server te retourneren

  2. Hoe Array/Table Parameter te gebruiken voor Oracle (ODP.NET 10g) via ADO.NET/C#?

  3. MySQL - Retourneert X-nummer van elke GROUP BY

  4. Is er een SQL-techniek om te bestellen door meerdere criteria te matchen?