2009-09-30 7 views
0

null 일 수도 있고 아닐 수도있는 문자열 속성이 있습니다.C에서 null 허용 문자열을 SP에 전달하는 방법

db.AddInParameter(InsertMessageDetailCommand, "MyParam", System.Data.DbType.String, this.myParam); 

필드가이 같은 SP에 정의되어 있습니다 :

@MyParam nvarchar(50) 

가 어떻게 null 값을 허용하는 SP를 변경할 수 있습니다

나는이 호출을 사용하여 SP에 전달하고 , param 값이 null 인 경우 나중에 SP에 데이터베이스 테이블에 null을 삽입 하시겠습니까? 예를 들어

@MyParam nvarchar(50) = NULL 

:

감사

+0

죄송합니다 - 붙여 넣기 코드가 잘못되었습니다. 업데이트하겠습니다. –

답변

2

는 옵션 저장 프로 시저 매개 변수를 선언하려면

CREATE PROCEDURE TestProc 
(
    @Param1 varchar(50) = NULL 
) 
AS 
SELECT 
    * 
FROM 
    TestTable 
WHERE 
    ((@Param1 IS NULL) OR (col1 = @Param1)) 

을하지만,이 패턴은 많은 매개 변수와 함께 사용할 때 발생할 수 있음을 유의하시기 바랍니다 '매개 변수 스니핑 (parameter sniffing)'으로 인해 캐시 된 쿼리 계획이 잘못되었습니다.

+0

1 초 테스트 해 보겠습니다 .... –

+0

업데이트 됨, 등호가 빠졌습니다! –

+0

키워드 'NULL'근처의 구문이 잘못되었습니다. –

관련 문제