기본 매개 변수 값으로 SQL 함수?
다음과 같이 기본 변수 값을 변경해 보았습니다.
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
모든 SQL 사전 컴파일러가 내게 준 모든 오류는 다음과 가능합니다.
메시지 102, 수준 15, 상태 1, 프로 시저 my_sp, 줄 8 '('근처에 잘못된 구문이 있습니다.
이미 절차를 만들었습니다. (관련성이 있는지 잘 모르겠습니다.) null 언급을 사용하고 나중에 확인한 내용이 없습니다. 한 줄로 할 수 있습니까?
업데이트 : 저장 프로 시저 매개 변수에 대한 MSDN 설명에서의 벗어났습니다 .
[= 기본값] 매개 변수의 주소입니다. 언어가 정의 된 경우 해당하는 경우 변수에 대한 값을 지정하지 않고 함수를 사용할 수 있습니다.
참고 :
varchar (max) 및 varbinary (max) 데이터 형식을 사용하여 CLR 함수에 기본 매개 변수 값을 수 있습니다.함수의 매개 변수에 자주 사용되는 경우에있는 경우를 검색하기 위해 함수가 호출 될 때 키워드 DEFAULT를 지정해야합니다. 이 동작은 매개 변수를 생략하면 언급을 의미하는 저장 프로 시저에서 언급과 함께 사용하는 변수를 사용합니다.
내가 잘못 해독합니까?
감사합니다.
프로 시저 매개 저장 변수의 기본값은 상수 여야 합니다 . 다음을 수행해야합니다 ...
ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()
나는 그것이 가능하다고 생각하지 않는다. 리터럴 (상수) 값을 숫자으로 많이한다.
그러나 다음과 같이 할 수 있습니다.
Set @currentDate = Coalesce(@currentDate , GetDate())
다음과 같이 시도 할 수 있습니다.
Set @CurrentDate=IsNull(@CurrentDate,GetDate())
귀하의 예제에서 대괄호로 Microsoft SQL Server를 사용하고 추측합니다.
에서 MSDN :
동일한 상수 값만; 스칼라 함수 (시스템, 사용자 정의 또는 CLR 함수) 또는 NULL을 사용할 수 있습니다.
이 함수 GETDATE()
는 반환되는 다른 값을 반환합니다.
이 값은 결정적이지 않을 수 없습니다.
암시 :
언어를 NULL
GETDATE()
마치 엔드에서 이야기를 수행하십시오.
참고 URL : https://stackoverflow.com/questions/470664/sql-function-as-default-parameter-value
'IT' 카테고리의 다른 글
HashMap 및 int를 키로 (0) | 2020.08.20 |
---|---|
삼각 함수는 어떻게 작동합니까? (0) | 2020.08.20 |
IDLE에서 명령 내역에 어떻게 액세스 할 수 있습니까? (0) | 2020.08.20 |
Pandas : Excel 파일에서 시트 목록 조회 (0) | 2020.08.20 |
포드 컨테이너 내에서 Kubernetes API에 액세스해야합니까? (0) | 2020.08.20 |