sql >> Databáze >  >> RDS >> Sqlserver

Postup vytvoření tabulky s proměnným počtem sloupců

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

Doufám, že to pomůže. V DECLARE CURSOR budete muset změnit "ColumnName" a "TableName" na váš skutečný sloupec/tabulku, na kterou se dotazujete.



  1. Jaká je výchozí hodnota VARCHAR2 v Oracle?

  2. Proč použití IN(...) při výběru na indexovaných polích sníží výkon SELECT dotazu?

  3. Parametr SqlParameter je již obsažen v jiné kolekci SqlParameterCollection – Podvádí using() {}?

  4. Volání sp_executesql s parametrem varchar