Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Процедура за създаване на таблица с променлив брой колони

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

Надявам се това да помогне. В DECLARE CURSOR ще трябва да промените „ColumnName“ и „TableName“ на вашата действителна колона/таблица, за която правите заявка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извикайте sp_executesql с параметър varchar

  2. Вземете AVG, пренебрегвайки Null или Zero стойности

  3. Как да изтрия дублиращи се редове в SQL Server?

  4. Цикъл върху набор от записи в SQL Server

  5. Вмъкване в таблица.. exec на свързания сървър не работи