A 서버 환경 ms 2008 server std (sql 2008 r2 64bit)
B 서버 환경 ms 2003 server std (sql 2000 sp4)
A 서버에 B를 링크드 서버로 등록 (SSMS -> 서버 개체 -> 연결된 서버에서 등록 확인)
select * from master.dbo.sysservers 로 쿼리 날렸을 때 결과 행에서 B서버 확인
select * from openquery ([B], 'select * from [DB].dbo.table') 조회 가능
*문제
select * from [B].[DB].dbo.table 쿼리 날렸을 때 아래와 같은 오류가 발생
=================================================================
연결된 서버 "gersangaccount"의 OLE DB 공급자 "SQLNCLI10"이(가) 메시지 "지정되지 않은 오류입니다."을(를) 반환했습니다.
연결된 서버 "gersangaccount"의 OLE DB 공급자 "SQLNCLI10"이(가) 메시지 "이 작업을 완료하는 데 필요한 저장 프로시저가 서버에 없습니다. 시스템 관리자에게 문의하십시오."을(를) 반환했습니다.
메시지 7311, 수준 16, 상태 2, 줄 1
연결된 서버 "gersangaccount"에 대한 OLE DB 공급자 "SQLNCLI10"의 스키마 행 집합 "DBSCHEMA_TABLES_INFO"을(를) 가져올 수 없습니다. 공급자가 인터페이스를 지원하지만 이 인터페이스를 사용하면 오류 코드가 반환됩니다.
=================================================================
B서버를 별칭으로 등록한 상태이며 IP xxx.xxx.xxx 까지 동일한 네트워크
64비트에서 NT 서버로의 문제 때문인가 해서 아래쿼리 실행한 후의 문제입니다.
USE MASTER
GO
CREATE PROCEDURE SP_TABLES_INFO_ROWSET_64
@TABLE_NAME SYSNAME
, @TABLE_SCHEMA SYSNAME = NULL
, @TABLE_TYPE NVARCHAR(255) = NULL
AS
BEGIN
DECLARE @RESULT INT SET @RESULT = 0
EXEC @RESULT = SP_TABLES_INFO_ROWSET @TABLE_NAME, @TABLE_SCHEMA, @TABLE_TYPE
END
2000에서 사용 중인 시스템을 2008 환경에서 테스트하고자 하며,
2008 처음 사용해보는데 무슨 문제인지 모르겠네요
도움이 필요합니다.
Comment 4
-
쓸만한게없네(윤선식)
2013.05.15 18:12
-
wassup
2013.05.16 10:25
A서버(sql2008) 마스터 DB에서 실행했어요
-
쓸만한게없네(윤선식)
2013.05.16 13:37
ㅜ.ㅜ
SQL Server 2000 에서 실행하고 다시 한 번 해 보세요. ^^.
-
wassup
2013.05.16 16:16
어이 없는 실수를 했네요ㅜㅜ
도움 감사드립니다. (__)
즐거운 연휴 보내세요^^
SQL Server 2008 이 64bit일 경우 다음 작업을 진행해 주세요.
1. SQL Server 2000 을 SP4까지 설치합니다.(이미 되어 있으시네요)
2. 다음 SP를 생성해 주세요.
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
go
http://sqlblog.com/blogs/roman_rehak/archive/2009/05/10/issue-with-64-bit-sql-server-using-sql-2000-linked-server.aspx
맞게 하신 듯 한데.
저 SP를 어디서 생성하신 건가요???