어쩌면 나는 ‘오후’의 순간을 보내고 있을지도 모르지만, 누구든지 내가 왜
메시지 102, 수준 15, 상태 1, 줄 2
‘)’근처에 잘못된 구문이 있습니다.
실행할 때
CREATE PROC DisplayDate
(@DateVar DATETIME)
AS
BEGIN
SELECT @DateVar
END
GO
EXEC DisplayDate GETDATE();
답변
함수 호출을 저장 프로 시저에 대한 인수로 전달할 수 없습니다. 대신 중간 변수를 사용하십시오.
DECLARE @tmp DATETIME
SET @tmp = GETDATE()
EXEC DisplayDate @tmp;
답변
으로 미치 밀 언급 당신은 함수를 전달할 수 없습니다.
귀하의 경우 미리 계산 된 값 또는 GETDATE ()를 전달해야하는 경우 기본값을 사용할 수 있습니다. 예를 들어 저장 프로 시저를 수정합니다.
ALTER PROC DisplayDate
(
@DateVar DATETIME = NULL
) AS
BEGIN
set @DateVar=ISNULL(@DateVar,GETDATE())
--the SP stuff here
SELECT @DateVar
END
GO
그런 다음 시도하십시오.
EXEC DisplayDate '2013-02-01 00:00:00.000'
EXEC DisplayDate
비고 : 여기서는이 매개 변수에 NULL 값을 사용하지 않는다고 가정했습니다. 귀하의 경우가 아닌 경우-사용하지 않은 다른 값 (예 : ‘1900-01-01 00 : 00 : 00.000’)을 사용할 수 있습니다.