1

가능한 중복은 :
Cast integer and concatenate to varchar in TSQL명명 된 저장된 프로 시저 매개 변수와 연결

당신은 더 복잡한 값을 명명 된 매개 변수를 사용하여 저장 프로 시저를 호출하려면 어떻게합니까. 나는 오류가 리터럴 문자열 연결하는 시도 얻을

EXEC MyStoredProc @Param1=CONCAT('My name is: ',@Name) 

'내 이름은이다 :'변수 @Name와

EXEC MyStoredProc @Param1='My name is: '[email protected] 

또는 : 여기에 약간 섞어서 예이다. 괄호는 문제를 해결하는 데 도움이되지 않습니다. 이것은 T-SQL의 한계입니까 (명명 된 매개 변수가 사용될 때 등호 뒤에 오는 표현식은 단일 리터럴 또는 변수 여야 함)?

감사

+0

왜 소스에서 연결 문자열을 전달할 수 없습니까? – Oded

+0

SQL Server의 제한. 위에 링크 된 연결 항목을 참조하십시오. –

답변

5

한 가지 방법

declare @Var1 varchar(50) 
select @Var1 = 'My name is: '[email protected] 

EXEC MyStoredProc @[email protected] 

동일

EXEC MyStoredProc @Param1=getdate() 

당신이

을 할 필요가 할 수 없어뿐만 아니라 기능과 사실
declare @Var1 datetime 
select @Var1 = getdate() 

EXEC MyStoredProc @[email protected] 
+1

* 일부 * 함수는 인라인으로 붙일 수 있습니다 ('@@'접두사로 붙일 수 있습니다 - 그래서'@@ identity'는 작동하지만'scope_identity()는 않습니다) –

+0

맞습니다. @@ more를 시스템 변수로 생각합니다 함수 – SQLMenace

+0

스칼라 함수 호출 예제로 업데이트되었습니다 ... –

관련 문제