[英]How to create Temporary table with Dynamic query in SQL Server 2005
I want to create Temporary table dynamically in SQL Server 2005 like below. 我想在SQL Server 2005中动态创建临时表,如下所示。
Create Table ##EmpMonthlyTimeReport
(
EmpID UNIQUEIDENTIFIER,
EmpName VARCHAR(100),
TaskId UNIQUEIDENTIFIER,
[07 Nov] NVARCHAR(10),
[08 Nov] NVARCHAR(10),
[09 Nov] NVARCHAR(10)
)
In the above ##EmpMonthlyTimeReport table, columns [07 Nov], [08 Nov], [09 Nov] are NOT static. 在上面的## EmpMonthlyTimeReport表中,[07 Nov],[08 Nov],[11 Nov]列不是静态的。 They are creating dynamically through another function. 他们通过另一个功能动态创建。
Hence, I am dynamically constructing the above table in one variable called @EmpMonthlyTimeReport and I'm executing the constructed sql string like below: 因此,我在一个名为@EmpMonthlyTimeReport的变量中动态构造了上面的表,并且正在执行如下构造的sql字符串:
EXEC(@EmpMonthlyTimeReport)
I am getting the following error: 我收到以下错误:
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.
Very silly work around. 非常愚蠢的工作。
I have changed the @EmpMonthlyTimeReport variable declaration from VARCHAR(MAX) to NVARCHAR(MAX) 我已经将@EmpMonthlyTimeReport变量声明从VARCHAR(MAX)更改为NVARCHAR(MAX)
That's it. 而已。 Everything is working as expected. 一切都按预期进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.