一時テーブルにデータを挿入する必要があります。
のような条件付きの列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 :(