본문 바로가기

티켓토리 IT이야기/기타 IT

64비트 SQL Server 2005 클라이언트에서 연결된 32비트 SQL Server 2000 서버 또는 연결된 SQL Server 7.0 서버로 분산 쿼리를 실행하려고 하면 오류 메시지가 나타날 수 있다


64비트 SQL Server 2005 클라이언트에서 연결된 32비트 SQL Server 2000 서버 또는 연결된 SQL Server 7.0 서버로 분산 쿼리를 실행하려고 하면 오류 메시지가 나타날 수 있다


다음과 같은 경우를 생각해 볼 수 있습니다. sp_addlinkedserver 저장 프로시저를 사용하여 연결된 32비트 Microsoft SQL Server 2000 서버 또는 연결된 SQL Server 7.0 서버를 정의한 다음 64비트 SQL Server 2005 클라이언트에서 연결된 서버로 분산 쿼리를 실행하려고 하면 다음과 같은 현상 중 하나가 나타날 수 있습니다.
  • 32비트 SQL Server 2000 서버가 SQL Server 2000 서비스 팩 3(SP3) 또는 SQL Server 2000 서비스 팩 4(SP4)로 업그레이드되지 않은 경우 다음과 같은 오류 메시지가 나타납니다.
    서버 <LinkedServerName>에 설치된 ODBC 카탈로그 저장 프로시저는 버전 <OldVersionNumber>입니다. 올바른 작동을 하려면 버전 <NewVersionNumber> 또는 이후 버전이 필요합니다. 시스템 관리자에게 문의하십시오.
  • 다음과 같은 경우 오류 메시지가 나타납니다.
    • 32비트 SQL Server 2000 서버에 SQL Server 2000 SP3 또는 SQL Server 2000 SP4가 설치되어 있거나 연결된 SQL Server 7.0 서버를 사용하는 경우
    • 32비트 SQL Server 2000 서버 또는 SQL Server 7.0 서버의 시스템 저장 프로시저 버전이 서버에 설치된 서비스 팩 버전과 다른 경우
    오류 메시지는 다음과 같습니다.
    이 작업을 완료하는 데 필요한 저장 프로시저가 서버에 없습니다. 시스템 관리자에게 문의하십시오. 
    메시지 7311, 수준 16, 상태 2, 줄 1 
    연결된 서버 "<LinkedServerName>"에 대한 OLE DB 공급자 "SQLNCLI"의 스키마 행 집합 "DBSCHEMA_TABLES_INFO"를 가져올 수 없습니다. 공급자가 인터페이스를 지원하지만 이 인터페이스를 사용하면 오류 코드가 반환됩니다.
참고 SQL Server 2000 SP3 또는 SQL Server 2000 SP4로 업그레이드하지 않은 연결된 SQL Server 2000 서버를 사용하는 경우 먼저 SQL Server 2000 SP3 또는 SQL Server 2000 SP4를 설치해야 합니다.


이 문제는 시스템 저장 프로시저가 업그레이드되지 않았기 때문에 발생합니다. SQL Server 2000 SP3 또는 SQL Server 2000 SP4를 설치한 후 시스템 저장 프로시저를 수동으로 업그레이드해야 합니다.


master database:


create procedure sp_tables_info_rowset_64


@table_name sysname,


@table_schema     sysname = null,


@table_type nvarchar(255) = null


as


declare @Result int set @Result = 0


exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type