sql >> Databasteknik >  >> RDS >> Sqlserver

Dynamiskt skapande av tabell i tsql

Skulle du kunna använda något sånt här?

DECLARE @Tab VARCHAR(MAX)
SET @Tab = 'CREATE TABLE #Whatever ('

SELECT @Tab = @Tab + QUOTENAME(ColumnName) + ' INT NULL
,'
FROM @This
SELECT @Tab = SUBSTRING(@Tab,1,LEN(@Tab)-1) + ')'
PRINT @Tab
-- EXEC (@Tab)

Två punkter:Du kanske kommer att behöva skapa temptabellen utan att använda dynamisk sql och sedan justera select-satsen för att ändra tabellen; detta är så att tabellen existerar i det aktuella sammanhanget - om skapa-satsen finns i dynamiskt kan du få ett felmeddelande.

Jag gillar inte att använda dynamisk sql så här - om du kunde använda en pivot senare för att returnera kolumnerna kan det vara ett bättre alternativ (jag är inte säker på om det är möjligt i det här fallet).




  1. Jag har av misstag låst ut root på MySQL

  2. Flask-SQLAlchemy:Kan inte återansluta förrän ogiltig transaktion återställs

  3. skicka användaren ett meddelande genom att skicka deras id till en modal box

  4. FEL #1054 - Okänd kolumn 'program_id' i 'NEW