Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Procedura tworzenia tabeli ze zmienną liczbą kolumn

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

Mam nadzieję, że to pomoże. W DECLARE CURSOR musisz zmienić "ColumnName" i "TableName" na rzeczywistą kolumnę/tabelę, której dotyczy zapytanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować strefy czasowe w SQL Server 2005?

  2. Jak podzielić ciąg po określonym znaku w SQL Server i zaktualizować tę wartość do określonej kolumny?

  3. Asp.Net wyświetla błąd przekroczenia limitu czasu podczas wykonywania procedury przechowywanej

  4. Niejednoznaczny błąd nazwy kolumny

  5. Wprowadzenie do SQL Server 2017