SQL Server 저장 프로시저에서 표현식 결과를 매개변수로 전달
한 개발자가 데이터베이스 개발 개선을 위해 저장 프로시저를 실행하려고 하다가 오류가 발생했습니다. 표현식의 결과(특히 "주어진 ID를 찾을 수 없습니다:" 문자열과 정수 변수 @pID의 값을 연결한 결과)를 인수 목록에 직접 전달하려고 하면 오류가 발생합니다.
그러나 SQL Server는 매개변수 목록 자체에서 이러한 작업을 지원하지 않습니다. 대신, 인수에 전달하기 전에 표현식 결과를 보유하기 위해 중간 변수를 사용해야 합니다.
EXEC의 구문은 매개변수 부분에 "값"의 형식을 명시적으로 지정하지 않아 간단한 표현식만 허용됨을 나타냅니다. 이러한 표현식은 리터럴 값과 @@ 접두사가 붙은 일부 시스템 함수로 제한됩니다. 괄호가 필요하지 않은 기능이라도 다른 시스템 기능은 허용되지 않습니다.
따라서 이 오류를 해결하려면 개발자는 다음 구문을 사용해야 합니다.
DECLARE @pID INT; SET @pID = 1; /*如果使用2008及以上版本,之前的版本需要分成两个单独的语句*/ DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11)); EXEC WriteLog 'Component', 'Source', @string;
위 내용은 SQL Server 저장 프로시저에서 식 결과를 매개 변수로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!