Ho bisogno di inserire alcuni dati in una tabella temporanea.CREATE TABLE con Dynamic Column
mi hanno alcune colonne condizionali basati come Salary
, Code
.
Come posso creare una tabella per colonne condizionali? Non voglio usare SELECT INTO #tempTable
Ecco il codice:
DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) =''
CREATE TABLE #myTempTable (Id INT, DeptId INT, DeptName VARCHAR(100))
SET @sqlSelect ='INSERT INTO #myTempTable
SELECT EMP.Id, EMP.DeptId, EMP.DeptName'
SET @sqlFrom =' FROM dbo.EMPLOYEE AS EMP'
IF (someCondition)
BEGIN
SET @sqlSelect = @sqlSelect +', EMP.Salary, EMP.Code'
END
SET @sql = @sqlSelect [email protected]
EXEC sp_executesql @sql
Qualsiasi aiuto/suggerimento su come meglio posso fare questo?
Aggiornamento:
Inizialmente ho usato SELECT INTO #TempTable
senza specificare alcuna delle colonne, come SQL Azure non supportano questo, ho deciso di andare con INSERT INTO
. Ma non sono sicuro di come sia possibile aggiungere già colonne dinamiche in una struttura definita. Il suo SQL completamente dinamico :(
@MahmoudGamal, aggiornato la mia domanda. Vedere la parte di aggiornamento per ulteriori informazioni – Billa
Non è possibile aggiungere colonne alle tabelle in modo dinamico. Devi avere tutte le colonne definite in anticipo. – dasblinkenlight
@dasblinkenlight, Quindi ho bisogno di CREARE una tabella tra cui Salario, colonne di codice, anche se non sono in selezione? Se questo è il caso, quale ordine inserirà se seleziono solo 3 colonne? Scusa, non sono bravo in sql. – Billa