sql >> Databasteknik >  >> RDS >> Sqlserver

Procedur för att skapa en tabell med ett variabelt antal kolumner

DECLARE @sSQL varchar(max),
  @ColumnName CHAR(128)

DECLARE TableCursor CURSOR FOR
  SELECT ColumnName FROM GroupTable

SET @sSQL = 'CREATE TABLE ##NewTempTable ('

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @ColumnName

WHILE @@FETCH_STATUS = 0
BEGIN 

SET @sSQL = @sSQL + RTRIM(@ColumnName) + ' CHAR(10) ,'

FETCH NEXT FROM TableCursor INTO @ColumnName

END

CLOSE TableCursor

DEALLOCATE TableCursor

SET @sSQL = @sSQL + ')'

EXEC (@sSQL)

SELECT * FROM ##NewTempTable

Jag hoppas det här hjälper. I DECLARE CURSOR måste du ändra "ColumnName" och "TableName" till din faktiska kolumn/tabell som du frågar efter.



  1. Är dessa två funktioner överdrivna för sanering?

  2. Skapa ny databas från en säkerhetskopia av en annan databas på samma server?

  3. Fråga för att räkna de distinkta orden av alla värden i en kolumn

  4. Definiera en jta-datakälla utanför behållaren