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

Dynamická tvorba tabulky v tsql

Dokázali byste něco takového použít?

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)

Dva body:Možná zjistíte, že budete muset vytvořit dočasnou tabulku bez použití dynamického SQL a poté upravit příkaz select, aby se tabulka změnila; je to proto, aby tabulka existovala v aktuálním kontextu – pokud je příkaz create v dynamice, můžete dostat chybu.

Nerad používám dynamické sql, jako je tento - pokud byste mohli později použít pivot k vrácení sloupců, mohla by to být lepší volba (nejsem si jistý, zda je to v tomto případě možné).




  1. Chyba při importu souboru 5 gig do tabulky

  2. Použití psql pro připojení k PostgreSQL v režimu SSL

  3. Základy tabulkových výrazů, Část 11 – Pohledy, úvahy o úpravách

  4. UNION mysql dává podivné číslované výsledky