2014-02-25 2 views
1

나는 열 이름과 매개 변수로 테이블 이름을 취하는 저장 프로 시저를 가지고있다. 이미 정상에 그것을 선언하고 있지만테이블 이름뿐만 아니라 열 이름을 SQL Server의 매개 변수로 저장 프로 시저에 전달하는 방법?

는 스칼라 변수 @tablename

를 선언해야합니다 :

ALTER PROCEDURE [dbo].[usp_TableReporting_GetColumnNamesAndValues] 
    @concatstring AS VARCHAR(100), 
    @Tablename as VARCHAR(100) 
AS 
BEGIN 
    SELECT @concatstring FROM @Tablename 
END 

이 절차는 나에게 오류를 제공합니다.

+0

당신 HV 동적 SQL – KumarHarsh

+0

오류를 사용하는 *이 *는 * 표 * 변수를 '선언해야한다는 말을해야 @ TableName' 오히려 * 스칼라 * 변수를 말하는 것보다. –

답변

4

사용 동적 SQL :

ALTER PROCEDURE [dbo].[usp_TableReporting_GetColumnNamesAndValues] 
@concatstring AS VARCHAR(100), 
@Tablename as VARCHAR(100) 

AS 
BEGIN 
    Declare @mystring varchar(max) = N'select ' + @concatstring + ' from ' + @Tablename 
    exec (@mystring) 

END 
+0

오류가 발생했습니다 프로 시저 실행이 실패했습니다 42000 - [SQL Server] 저장 프로 시저 'ChamberTest에서 축 선택'을 찾을 수 없습니다. –

+0

exec ... :)에서 괄호를 놓쳤습니다. 내 대답이 업데이트되었습니다. – Milen

관련 문제