2013-03-25 3 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 

я получаю следующее сообщение:

Msg 1087, Level 16, State 1, Line 19 должен объявить табличную переменную "@EmpTable".

Я также пытался что-то вроде этого, но это также не удалось:

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

мне было интересно, если кто-то сделал это, или знает, если это возможно.

ответ

1

Если вы хотите присоединиться к имени динамической таблицы, вам нужно поместить весь ваш скрипт в динамический построенный sql и использовать EXEC для выполнения всего динамического sql. Примерно:


'cross join' + '[dbo].[employee_'[email protected]+'] temp' .... 
Смежные вопросы