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

Dynamické SQL a Temp tabulky T-SQL

Nejprve musíte vytvořit tabulku, poté bude dostupná v dynamickém SQL.

Toto funguje:

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

SELECT *
FROM #temp3

Toto nebude fungovat:

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

SELECT *
FROM #temp2

Jinými slovy:

  1. Vytvořte časovou tabulku
  2. Spustit proces
  3. Vyberte z dočasné tabulky

Zde je úplný příklad:

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. Node.js MSSQL tedius ConnectionError:Nepodařilo se připojit k localhost:1433 - připojit ECONNREFUSED

  2. Omezení křížových tabulek v PostgreSQL

  3. Příklady LOCALTIMESTAMP – MySQL

  4. Jak resetuji sekvenci v Oracle?