programing

GETDA를 사용하여 스토어드 프로시저를 호출하는 '' 근처의 구문이 잘못되었습니다.TE

yoursource 2023. 4. 7. 22:13
반응형

GETDA를 사용하여 스토어드 프로시저를 호출하는 '' 근처의 구문이 잘못되었습니다.TE

내가 '오후'의 시간을 보내고 있는 건지도 모르지만, 누가 설명 좀 해줄래?

메시지 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 00:00:00.000').

제가 찾은 해결책은 실행 전에 temp 변수를 선언하고 실행 라인에 전달하는 것입니다.

Declare @ddate date

set ddate = getdate()

EXEC DisplayDate @ddate;

언급URL : https://stackoverflow.com/questions/2399104/incorrect-syntax-near-calling-stored-procedure-with-getdate

반응형