0

我能够从动态值创建一个表,但是当我在连接中使用它时无法引用该表。

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

我想知道是否有人这样做过,或者知道是否有可能。

4

1 回答 1

1

如果你想加入动态表名,那么你需要把你的整个脚本放在动态构造的sql中,并使用EXEC来执行整个动态sql。如下:


'cross join' + '[dbo].[employee_'+@UserName+'] temp' ....
于 2013-03-25T16:59:32.503 回答