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

T-SQL Dynamic SQL og Temp-tabeller

Du skal først oprette din tabel først, så vil den være tilgængelig i den dynamiske SQL.

Dette virker:

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

SELECT *
FROM #temp3

Dette vil ikke virke:

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

SELECT *
FROM #temp2

Med andre ord:

  1. Opret midlertidig tabel
  2. Udfør procedure
  3. Vælg fra midlertidig tabel

Her er et komplet eksempel:

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

CREATE TABLE #temp (id INT)

EXEC prTest2 'insert #temp values(1)'

SELECT *
FROM #temp


  1. Hvordan kan jeg liste ALLE tilskud en bruger har modtaget?

  2. Sådan finder du aktuelle åbne markører i Oracle

  3. Hvordan indsætter man en post med kun standardværdier?

  4. Hvordan opretter du en skrivebeskyttet bruger i PostgreSQL?