sql >> Databasteknik >  >> RDS >> Sqlserver

skapa #temp-tabellen dynamiskt och använd sedan för att infoga data

Detta beror på att omfattningen av EXEC uttalandet skiljer sig från omfattningen av den innehållande sproc. Det vill säga ditt anrop till EXEC skapar den temporära tabellen, och sedan tas den automatiskt bort som räckvidd för EXEC finns kvar. Du måste i princip göra allt i ett EXEC uttalande:

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

EXEC(@sql)


  1. Funktionsalias för Postgres standardfunktion

  2. VÄLJ DISTINCT CLOB_COLUMN FRÅN TABELL;

  3. 2 sätt att kontrollera kompatibilitetsnivån i Oracle (SQLcl &SQL*Plus)

  4. Det gick inte att ladda filen eller sammansättningen för Oracle.DataAccess i .NET