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

SQL dinamico T-SQL e tabelle temporanee

Devi prima creare la tua tabella, quindi sarà disponibile nell'SQL dinamico.

Funziona:

CREATE TABLE #temp3 (id INT)
EXEC ('insert #temp3 values(1)')

SELECT *
FROM #temp3

Questo non funzionerà:

EXEC (
        'create table #temp2 (id int)
         insert #temp2 values(1)'
        )

SELECT *
FROM #temp2

In altre parole:

  1. Crea tabella temporanea
  2. Esegui processo
  3. Seleziona dalla tabella temporanea

Ecco un esempio completo:

CREATE PROC prTest2 @var VARCHAR(100)
AS
EXEC (@var)
GO

CREATE TABLE #temp (id INT)

EXEC prTest2 'insert #temp values(1)'

SELECT *
FROM #temp