以下のように、SQLServer2005で一時テーブルを動的に作成したいと思います。
Create Table ##EmpMonthlyTimeReport
(
EmpID UNIQUEIDENTIFIER,
EmpName VARCHAR(100),
TaskId UNIQUEIDENTIFIER,
[07 Nov] NVARCHAR(10),
[08 Nov] NVARCHAR(10),
[09 Nov] NVARCHAR(10)
)
上記の##EmpMonthlyTimeReportテーブルでは、列[07 Nov]、[08 Nov]、[ 09Nov]は静的ではありません。彼らは別の機能を介して動的に作成しています。
したがって、 @ EmpMonthlyTimeReportという1つの変数で上記のテーブルを動的に構築し、構築されたSQL文字列を次のように実行しています。
EXEC(@EmpMonthlyTimeReport)
次のエラーが発生します。
Msg 50000, Level 16, State 1, Procedure SVS_WorkOnWeekends, Line 157
The name 'INSERT INTO ##EmpMonthlyTimeReport(EmpID, EmpName, TaskId)
SELECT EmpId, EmpName, TaskId FROM TableData
SELECT * FROM ##EmpMonthlyTimeReport
DROP TABLE ##EmpMonthlyTimeReport' is not a valid identifier.