sql >> Databáze >  >> RDS >> Sqlserver

dynamicky vytvoří tabulku #temp a poté použije k vložení dat

Důvodem je rozsah EXEC prohlášení se liší od rozsahu obsahujícího sproc. To znamená vaše volání EXEC vytváří dočasnou tabulku a poté je automaticky zrušena jako rozsah pro EXEC je ponecháno. V podstatě musíte udělat všechno uvnitř jednoho EXEC prohlášení:

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

EXEC(@sql)


  1. výběr dat z tabulky na základě data

  2. SSRS:opakujte hodnotu skupiny řádků tablix zcela vlevo na každém řádku

  3. převést časové razítko mysql na skutečné datum a čas?

  4. Seznámení s pracovní zátěží SQL Serveru