2008-09-23 2 views
0

isql을 사용하여 배치 파일을 통해 SQL Server 2000에 데이터베이스 빌드를 릴리스합니다. 배치 파일은 여러 파일이 다른 SQL Server (개발, 테스트, 라이브)에 일관되게 릴리스되도록 사용됩니다.isql을 통해 일관되게 데이터베이스 빌드 해제

SQL Server는 ANSI 코드 페이지 1252 (sp_helpsort)를 사용하지만 isql은 코드 페이지 437을 사용하는 OEM 클라이언트입니다. 즉, ASCII 코드> 128 인 모든 확장 문자는 스크립트 실행시 변환됩니다. "£"와 같은 문자가 스크립트에 포함될 때 일관성없는 결과가 발생합니다. 차이점은 Microsoft knowledgebase article에 설명되어 있습니다.

가능한 해결책은 다음과 같습니다 -

  • 저장 유니 코드와 사용 OSQL을 사용하여 스크립트.
  • 레지스트리 키를 쓰는 SQL Server 클라이언트 네트워크 유틸리티를 사용하여 AutoAnsiToOem 설정을 해제하십시오.

이러한 옵션은 여러 가지 일을 일관되게하는 사람들에게 달려 있습니다. 파일을 저장할 때 모두 동일한 코드 페이지 옵션을 선택해야합니다. 그렇지 않으면 빌드를 수행하는 모든 사용자가 AutoAnsiToOem에 대해 동일한 옵션 세트를 가져야합니다.

SQL 스크립트 또는 파일을 호출하는 배치 파일에서 코드 페이지를 강제로 사용하여 파일 저장 방법이나 다양한 설정에 관계없이 빌드가 항상 릴리스되도록하는 방법이 있습니까? 누구든지 석방을 수행합니까?

답변

2

isql은 더 이상 사용되지 않습니다. DB-Library 연결을 사용하기 때문에 SQL Server 2005 이상 버전에는 포함되어 있지 않습니다. 이유와 이유에 대해서는 Connecting Early Version Clients to SQL Server 2000을 참조하십시오.

osql은 ODBC 연결을 사용하여 SQL Server에 연결합니다. 완전성을 위해 OLE DB를 SQL Native Client 공급자와 함께 사용하는 SQL Server 2005의 경우 sqlcmd이 추가되었습니다.

0

답변을 더 많이 받아들이면서 SQL Server 2000 데이터베이스에 대해 sqlcmd를 사용하여 테스트했으며 작동합니다. SQL Server 2005 클라이언트 도구가 설치된 컴퓨터에서 sqlcmd를 실행해야합니다.

관련 문제