sql >> Database teknologi >  >> RDS >> Sqlserver

Fremgangsmåde for at oprette en tabel med et variabelt antal kolonner

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

Jeg håber det hjælper. I DECLARE CURSOR skal du ændre "ColumnName" og "TableName" til din faktiske kolonne/tabel, som du forespørger på.



  1. Forbinder MySQL Azure med Java

  2. MySQL crasher på SQL

  3. Ugyldigt kolonnenavn, på kolonner, der er oprettet med select-sætning

  4. SELECT COUNT(*) er langsom, selv med where-sætning