sql >> Databasteknik >  >> RDS >> Sqlserver

T-SQL Dynamic SQL och Temp-tabeller

Du måste först skapa din tabell först, sedan blir den tillgänglig i dynamisk SQL.

Detta fungerar:

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

SELECT *
FROM #temp3

Detta kommer inte att fungera:

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

SELECT *
FROM #temp2

Med andra ord:

  1. Skapa en tillfällig tabell
  2. Utför proc
  3. Välj från tillfällig tabell

Här är ett komplett exempel:

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. Fel när QUERY-paketet skickades

  2. Hur får man genererade nycklar från JDBC batchinlägg i Oracle?

  3. 10 effektiva sätt att bli mer produktiv på jobbet

  4. Avrundning till 2 decimaler i SQL