2013-03-25 4 views
0

동적 값에서 테이블을 만들 수 있지만 조인에서이 테이블을 참조 할 수 없습니다. 테이블 변수 "@EmpTable"를 선언해야JOIN의 동적 테이블 이름

메시지 1087, 수준 16, 상태 1, 줄 19 :

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

CROSS JOIN @EmpTable emp 

나는 다음과 같은 메시지가 나타납니다.

나는이 같은 시도했지만 그것도 실패 : 사람이 일을하거나 가능한 경우 알고있는 경우 궁금 해서요

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

.

답변

1

동적 테이블 이름에 가입하려면 동적 생성 된 sql에 전체 스크립트를 넣고 EXEC를 사용하여 전체 동적 SQL을 실행해야합니다. 다음과 같이 :


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