2011-02-15 2 views
4

프로그램에서 테이블 이름을 가져올 수 있습니다. 다음 코드처럼저장 프로 시저의 테이블 이름 가져 오기 절차

는 :

Create Procedure [dbo].[sp_SelectAll] 
@BankName nvarchar(50) 

As 
Begin 
    Select * 
    From @BankName 
End 

이 오류 코드입니다.

다른 방법이 있습니까?

+0

'EXISTS' 테스트를 제외하고 프로덕션 코드에서'select *'를 사용하는 것은 일반적으로 좋지 않습니다. 이 코드에 대한 또 다른 나쁜 느낌이 있습니다 - 결과 집합의 격렬한 결과를 반환 할 수있는 저장 프로 시저를 작성하거나 동일한 구조의 여러 테이블을 가지고있는 경우 중 하나입니다. 이 두 가지 중 하나는 일반적으로 좋지 않은 디자인의 징표입니다. –

답변

0

테이블을 매개 변수화 할 수 없습니다. 동적 SQL을 작성해야합니다. 즉, SQL 문자열을 생성하고 exec를 사용하여 실행해야합니다.

간부는

0

당신은 제대로 그 일을하기 위해 dynamic SQL를 사용하여 작업해야이

Create Procedure [dbo].[sp_SelectAll] 
     @BankName nvarchar(50) 

     As 
     Begin 
      EXEC('Select * from '+ @BankName) 
     End 

시도 (+ @BankName 'SELECT * FROM').

관련 문제