2012-06-14 3 views
0

"상황"이 있습니다. 중앙 서버의 에이전트 테이블에 저장된 알려진 IP를 가진 ~ 80 개의 PC에 하나의 데이터베이스가 있습니다. 각 데이터베이스에서 일부 데이터를 선택 (테스트)하고 싶습니다. 나는 시작 :T-SQL : 커서로 데이터를 선택하십시오.

DECLARE c CURSOR FOR 
    SELECT agent_id, agent_ip_address FROM DB_FF.dbo.agents 
     WHERE agent_ip_address IS NOT NULL 
----------------------------------------------------- 
DECLARE @agent_id int, @agent_ip_address varchar(MAX) 
----------------------------------------------------- 

OPEN c 
FETCH NEXT FROM c INTO @agent_id, @agent_ip_address 
WHILE @@FETCH_STATUS <> -1 
     BEGIN 
     SELECT TOP 3 * FROM @agent_ip_address.[DB_SLAVE].[dbo].[cheques]; 
     END 

내가 지정한 경우 문제가 "." [DB_SLAVE]와 [dbo] 사이. 어떤 아이디어를 어떻게 할 수 있습니까 (지능형)? 감사.

+1

@agent_ip_address는 실제 점선 IP 주소 * 또는 연결된 서버 이름입니까? 연결된 서버가 아니라면 OPENDATASOURCE가 필요합니다. 이거 야? 어떤 인증이 사용되고 있습니까? –

+0

서버 인증 및 그 또 다른 문제입니다. IP는 점으로 구분됩니다. –

+0

공용 인터넷을 통해 50 대의 서버에 액세스해야합니까? –

답변

0

만약 콘솔 응용 프로그램이나 비슷한 것을 사용하는 옵션이 있다면 SQL 커서 대신에 dataReader (사용 언어에 관계없이)를 사용하고 동적 SQL을 수행 할 수 있습니다. 다시 실행하려고합니다.

관련 문제