我可以从动态值创建一个表,但是当我在连接中使用它时,我无法引用该表。
DECLARE @UserName varchar(5)
DECLARE @EmpRacfid varchar(max)
SET @UserName = RIGHT(SYSTEM_USER,5)
SET @EmpTable = 'dbo.Employee_' + @UserName
CROSS JOIN @EmpTable emp
我收到以下消息:
Msg 1087,Level 16,State 1,Line 19 必须声明表变量“@EmpTable”。
我也试过这样的事情,但也失败了:
CROSS JOIN '[dbo].[Employee_' + @UserName + ']' emp
我想知道是否有人这样做过,或者知道是否有可能。
答案 0 :(得分:1)
如果要加入动态表名,那么需要将整个脚本放在动态构造的sql中,并使用EXEC来执行整个动态sql。如下:
'cross join' + '[dbo].[employee_'+@UserName+'] temp' ....