2013-03-25 43 views
0

我能夠從動態值創建表,但我在連接中使用它時無法引用該表。JOIN中的動態表名

DECLARE @UserName varchar(5) 
DECLARE @EmpRacfid varchar(max) 
SET @UserName = RIGHT(SYSTEM_USER,5) 
SET @EmpTable = 'dbo.Employee_' + @UserName 

CROSS JOIN @EmpTable emp 

我得到以下信息:

消息1087,級別16,狀態1,行19 必須聲明表變量 「@EmpTable」。

我也嘗試過這樣的事情,但它也失敗:

CROSS JOIN '[dbo].[Employee_' + @UserName + ']' emp 

我想知道是否有人已經做到了這一點,或者知道它是可能的。

回答

1

如果你想加入動態表名,那麼你需要把你的整個腳本放在動態構建的sql中,並使用EXEC來執行整個動態sql。如下:


'cross join' + '[dbo].[employee_'[email protected]+'] temp' ....