MSSQL 2005 Server SQLCLR에 저장 프로 시저가 있습니다. 선택적 인수를 정의 할 수 있습니까? 그렇다면 어떻게?SQLCLR에서 선택적 인수 사용
답변
마음에 떠오르는 가장 빠른 방법은 'shim'저장 프로 시저를 사용하는 것입니다. 'shim'저장 프로 시저를 사용하려면이 매개 변수를 사용하여 내부 저장 프로 시저를 호출하는 선택적 매개 변수의 기본값을 ' 선택적 매개 변수는 C# 3 및 이전 버전에서 제공됩니다.
당신은 널 (null)로 전달하고이 같은 수행 할 수 있습니다
create proc sp_find_person
@fname varchar(30)
@lname varchar(60)
as
begin
select * from person a
where (a.fname = @fname or @fname is null)
and (a.lname = @lname or @lname is null);
end
go
사람에서 모든 행을 반환 널 (null)로 두 매개 변수를 전달합니다.
@fname 값과 @lname null을 전달하면 해당 @fname을 가진 모든 사람이 반환됩니다.
값과 @fname이있는 @lname을 전달하면 해당 @lname을 가진 모든 사람이 반환됩니다.
Null이 아닌 값을 모두 전달하면 지정된 fname 및 lname을 가진 모든 사람을 찾을 수 있습니다.
기본값을 사용하려는 값에 대해 Null을 전달하는 데 문제가 있습니까?
이 기능은 모든 상황에서 작동하지 않을 수도 있습니다.
때로는 실제 값이 실제로 Null인지 알고 싶을 수 있으므로 기본값을 사용하지 마십시오.
이 경우 추가로 "Default"매개 변수를 추가해야합니다.
[Microsoft.SqlServer.Server.SqlProcedure]
public static void MySproc(SqlInt32 pID, SqlBoolean UseDefault_pID)
{
pID = (UseDefault_pID == SqlBoolean.True && pID == SqlInt32.Null)
? SomeDefaultPIDValue : pID;
}
이 다음 CLR의 sproc에 전화를 기본값으로 선택적 매개 변수에 걸릴 "래퍼에게"sprocs가를 추가 작성할 필요에 저장합니다. 널이 전달 될 때
는 기본-값을 사용 : UseDefault_pID = 1널이 전달 될 때 실제 값을 유지하려면 : UseDefault_pID = 0
나는 틀린 아무것도 생각하지 않는다. 이것이 3.5 년 전이었던 것을 볼 때, 저는 원래의 경우를 기억하지 못합니다. 나는 이것이 몇 가지 선택적 매개 변수를 가진 프로 시저 일 뿐이라는 것을 추측 할 수 있으므로 기본 검사 코드가 길어질 수 있습니다. –
- 1. 선택적 인수 전파
- 2. 매크로에 선택적 인수 추가
- 3. 전달 선택적 인수 (... 나머지)
- 4. cmake 매크로의 선택적 인수
- 5. 파이썬 argparse 선택적 하위 인수
- 6. 파이썬에서 선택적 인수 처리 (가능)
- 7. 선택적 인수로 PHP 함수의 인수 수 얻기
- 8. Clojure 키워드 및 선택적 인수 문제
- 9. AS3 : 선택적 인수 및 조합에 대한 테스트
- 10. 선택적 매개 변수 사용
- 11. 선택적 위장과 함께 masterpages 사용
- 12. update.formula의 함수 인수 사용
- 13. MVC에서 인수 사용
- 14. 저장 프로 시저에 대한 일반 ASP에서 선택적 인수 전달
- 15. ModelForm 사용 및 인수 전달
- 16. Drupal보기 사용 내 테마의 인수
- 17. 다른 함수에서 스플릿 인수 사용
- 18. 명령 줄 인수 사용 방법
- 19. ant svntask에서 --quiet 인수 사용
- 20. Linq.Table.Where()의 선택적 OR 구문 사용
- 21. 인터페이스의 선택적 매개 변수에 Double.NaN 사용
- 22. 자바 스크립트의 선택적 설정에서 선택적 속성 읽기
- 23. objective-c에서 변수 이름으로 인수 사용
- 24. 표현식 트리를 인수 제약 조건으로 사용
- 25. F # 코어 라이브러리를 SQLCLR에서 승인 할 수 있습니까?
- 26. 선택적 매개 변수와 따옴표가있는 명령 문자열에서 Path.GetDirectoryName 사용
- 27. MySQL LEFT JOIN (두 번째 테이블에서 선택적 값 사용)
- 28. C# 4.0의 선택적/명명 된 매개 변수 사용 방법
- 29. ANTLR : 선택적 매개 변수에 대한 문법 테스트 (? 연산자 사용)
- 30. MySQL에서 선택적 인수를 사용하여 함수 만들기
그래, 내가 지금 뭘하는지이지만, 같은 일에 대해 여러 개의 저장 프로 시저를 사용하지 않으려 고합니다. –