2014-05-16 1 views
1

나는 고전적인 asp로 작성된 기존 응용 프로그램을 Access 데이터베이스로 백엔드로 SQL 서버의 백엔드로 업 사이징 중입니다. 사용자가 빈 셀을 남겨두고 데이터가 다시 표시 될 때 코드는 빈 문자열 (''- 두 개의 틱)을 입력하고 Access 버전은이 틱을 Null로 처리합니다. 여기서 SQl 버전은 그렇지 않습니다. 예 : 4 열의 입력 양식이 있으며, 첫 번째 텍스트는 텍스트이며 세 개의 4 자리 시간 필드가 있습니다. 이 시간 필드는 SQL Server에서 varchar 인 Access에서 Text 유형입니다. 데이터가 표시되면 Access는 첫 번째 텍스트 만 표시합니다. &은 빈 문자열 (틱이있는 값)을 무시합니다. 여기서 SQl 서버 버전은 시간 값을 공백으로 표시하려고 시도합니다. 이 시간 필드가 실제로 balnk를 떠났을 때 값을 가지지 않는 것은 괜찮습니다. 코드에는 파란색 코드 만 있지만 시간이 지남에 따라 빨간색으로 표시됩니다. 코드를 변경하지 않고 간단한 솔루션을 찾으려고합니다. 빈 문자열 (두 개의 연속 작은 따옴표가있는)은 SQL 서버의 값으로, Access의 경우 Null로 사용됩니다. 결론은 다음과 같습니다. SQL Server가 빈 문자열을 Null로 해석하도록하려면 어떻게해야합니까? .. ANSI NULL 설정을 on 또는 off로 테스트했지만 도움이되지 않았습니다. 모든 데이터베이스 와이드 설정?! 사전에 도움을 주셔서 감사합니다!빈 문자열 as Access in SQL server

+0

해결책을 찾았습니다. SQL 서버에 정확히 정의되지 않은 ''(두 개의 작은 따옴표가있는 빈 문자열)의 비위 방적 값입니다. 나는 디폴트 값으로 ("") 대신 (N ")을 가졌다. 일단 수정하자마자 모든 것이 잘 작동하기 시작했습니다. NULLIF와 ISNULL 함수를 알고 있었지만 코드를 변경하고 싶지 않았습니다. 다른 함수가 액세스 할 때 동일하게 존재하지 않기 때문에 코드를 변경하고 싶지 않았습니다. instr, iff, CDate는 변경해야하는 SQL Server에는없는 몇 가지 예입니다. 앞으로도 사용할 수있는 INSTEAD OF 트리거 아이디어에 감사드립니다! – user3645723

답변

0

빈 문자열을 NULL로 보는 SQL의 매우 짧은 기능은 NULLIF(myColumn, '')입니다. 문자열이 비어 있으면 null을 반환합니다. 이를 구현하는 방법은 귀하에게 달려 있습니다. '코드 변경없이'라고 말하면, 그럴 수도 있고 그렇지 않을 수도 있습니다. 그러나 예를 들어 계산 된 열을 사용하여 asp 코드를 변경하지 않고 데이터베이스에 대한 스키마 변경이 필요합니다. 또는 기존 열에 대한 쿼리를 수정하여 해당 기능을 사용할 수 있습니다 ... 그런 수정은 실제로 귀하의 요구 사항에 불가능합니까?