sql >> Database >  >> RDS >> Sqlserver

Dynamische creatie van een tabel in tsql

Zou je zoiets kunnen gebruiken?

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)

Twee punten:het kan zijn dat u de temp-tabel moet maken zonder dynamische sql te gebruiken, en vervolgens de select-instructie aan te passen om de tabel te wijzigen; dit is zo dat de tabel in de huidige context bestaat - als de create-instructie in de dynamische staat, kunt u een foutmelding krijgen.

Ik hou er niet van om dynamische sql op deze manier te gebruiken - als je later een spil zou kunnen gebruiken om de kolommen terug te geven, zou dat een betere optie kunnen zijn (ik weet niet zeker of het in dit geval mogelijk is).




  1. SQL Server Management Studio-fout Opgeslagen instellingenbestand kan niet worden gevonden

  2. Foutcode:1406. Gegevens te lang voor kolom - MySQL

  3. php-variabele in MySQL-rijnaam

  4. Ontsnappen aan speciale symbolen in Sqlcmd