[SQL] 새 선택적 매개 변수를 허용하도록 SQL 서버 기능을 변경합니다
SQL새 선택적 매개 변수를 허용하도록 SQL 서버 기능을 변경합니다
이미 SQL Server 2005의 기능 등이 있습니다
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric)
Returns varchar(100) AS
Begin
<Function Body>
End
나는 또한 선택적 매개 변수 @ToDate을 받아이 기능을 수정할. 나는 @Todate 후 제공 뭔가 다른 기존 코드를 계속 할 경우 기능에 로직을 추가하기 위하여려고하고있다.
나는 기능으로 수정 :
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric,@ToDate DateTime=null)
Returns varchar(100) AS
Begin
<Function Body>
End
지금은 기능으로 호출 할 수 있습니다 :
SELECT dbo.fCalculateEstimateDate(647,GETDATE())
그러나 다음 호출에 오류가 있습니다 :
SELECT dbo.fCalculateEstimateDate(647)
같이
일이 안 내 이해에 따라한다.
난 아무것도없는 건가요? 미리 감사드립니다.
해결법
-
==============================
1.에서하는 기능을 만듭니다
에서하는 기능을 만듭니다
그래서 당신은 할 필요가 :
SELECT dbo.fCalculateEstimateDate(647,DEFAULT)
-
==============================
2.SELECT dbo.fCalculateEstimateDate을 유지하는 방법은 (647) 통화 작업은 다음과 같습니다
SELECT dbo.fCalculateEstimateDate을 유지하는 방법은 (647) 통화 작업은 다음과 같습니다
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric) Returns varchar(100) AS Declare @Result varchar(100) SELECT @Result = [dbo].[fCalculateEstimateDate_v2] (@vWorkOrderID,DEFAULT) Return @Result Begin End CREATE function [dbo].[fCalculateEstimateDate_v2] (@vWorkOrderID numeric,@ToDate DateTime=null) Returns varchar(100) AS Begin <Function Body> End
-
==============================
3.여기에 T-SQL을 제안 나는 EXECUTE 명령을 발견했다 - 기본 매개 변수와 기능이 제대로 작동 할 수 있습니다. 저장 프로 시저와 마찬가지로 함수를 호출 할 때 필요없는 '기본'이없는이 방법, 당신은 단지 매개 변수를 생략합니다.
여기에 T-SQL을 제안 나는 EXECUTE 명령을 발견했다 - 기본 매개 변수와 기능이 제대로 작동 할 수 있습니다. 저장 프로 시저와 마찬가지로 함수를 호출 할 때 필요없는 '기본'이없는이 방법, 당신은 단지 매개 변수를 생략합니다.
from https://stackoverflow.com/questions/12721869/alter-a-sql-server-function-to-accept-new-optional-parameter by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 마이크로 소프트 SQL Server Management Studio를 사용하여 데이터베이스의 모든 트리거에 대한 스크립트를 생성하는 방법 (0) | 2020.06.27 |
---|---|
[SQL] GROUP BY - 그룹화하지 않음 NULL (0) | 2020.06.27 |
[SQL] 어떻게 SQL 데이터베이스 테이블에 날짜를 삽입? (0) | 2020.06.27 |
[SQL] 디폴트 값으로 테이블에 열을 추가 기존 컬럼의 값과 동일 (0) | 2020.06.27 |
[SQL] 방법 / 플러시 MySQL의 InnoDB의 버퍼 풀을 지우려면? (0) | 2020.06.27 |