2011-05-05 3 views
3

nullable 인 varchar 형식의 몇 가지 열이있는 SQL Server 테이블이 있습니다. 텍스트 상자가 비어 있으면 aspx 페이지에서 데이터를 게시 할 때 데이터베이스 테이블 열이 빈 문자열로 업데이트됩니다.SQL Server Nullable Column

null 값을 유지하는 대신 빈 문자열로 대체해야합니다. 중간 문자열 C# 코드에서 빈 문자열을 System.DBnull로 변경하거나 저장 프로 시저에서 빈 문자열을 변경하는 논리를 가질 수 있습니다.

이 상황을 처리하는 다른 방법이 있습니까?

는 트리거를 사용하거나 PROC에서 그것을 할 수
+0

공백이 아닌 널 (null)이 필요한 이유가 있습니까? –

+0

이것이 가능한지 확실하지 않은 경우 [ConvertEmptyStringToNull] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.convertemptyystringtonull.aspx) 가능성이 있습니다. . –

답변

4

, 당신은 아마 구분에 따라 결정을 만드는 코드 근처에 넣어 것 NULLIF 기능

에게 예

DECLARE @d VARCHAR(20) 
SELECT @d = '' 
SELECT NULLIF(@d,'') 
+0

방아쇠가 확실히 작동하는 동안, 나는 이것이 나중에 유지 보수 두통이 될 것 같은 경우라고 생각합니다. 내가 컨트롤에서 나오는 빈 문자열과 데이터베이스에서 끝나는 NULL을 볼 때, 내 생각은 방아쇠를 찾지 않을 것입니다. 나는 코드베이스를 파고 들기에 너무 많은 시간을 소비 한 후에 만 ​​그것을 발견 할 것이라고 생각한다. –

0

을 사용할 수 있습니다 빈 문자열과 널 문자열 사이. 응용 프로그램의 의미 나 결과 동작간에 차이가 없다면 필드를 null이 아닌 것으로 만들고 빈 문자열을 고집하는 것이 좋습니다.