我需要在临时表中插入一些数据。
我有一些基于条件的列,例如Salary
,Code
。
如何为基于条件的列创建表?我不想用
SELECT INTO #tempTable
这是代码:
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 +@sqlFrom
EXEC sp_executesql @sql
关于我能做得更好的任何帮助/建议?
更新:
最初我在SELECT INTO #TempTable
没有指定列的情况下使用,由于 SQL Azure 不支持,我决定使用INSERT INTO
. 但不确定如何在已定义的结构中添加动态列。其完全动态的 SQL :(