원격서버에 있는 저장프로시저를 호출을 하는 것은 가능한데요.
그 결과값을 다시 Select 를 할 수 있을까요?
LinkedServer
Exec LinkedServer.dbo.SP 'A' , 'B' 이렇게 하면 결과값이 나옵니다.
그런데 이 결과값을 가지고 Local에 있는 테이블과 조인을 한다던지, 한번더 조건을 주기 위해서.. Select 로 감싸고 싶은데요...
Select * from ( LinkedServer.dbo.SP 'A' , 'B' )
이런식으로 되지는 않나요?
이렇게 하면
"원격 테이블 값 함수 호출을 사용할 수 없습니다."
이런 오류값이 나옵니다.
Comment 8
-
군고구마
2014.08.19 10:05
-
taz2315
2014.08.19 10:09
네 연결 명을 정확히 썼습니다.
실제 쿼리에는 말씀하신 대로 Linkedserver.dbo.table 이런 식으로 정확히 입력을 했습니다.
-
이리
2014.08.19 10:56
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=41&MAEULNo=17&no=8013&ref=7996
한번 참고해 보세요.
-
taz2315
2014.08.19 10:59
검색해서 확인한 내용입니다.
감사합니다.
적용은 안되네요...
-
taz2315
2014.08.19 10:57
Select data1, data2 from OPENQUERY("Linkedserver",'DB.dbo.SP "A", "B"')
이런식으로 했는데.
"OPENQUERY 및 OPENROWSET을 통해 얻은 결과 집합에는 열 이름 중복이 허용되지 않습니다. 열 이름 data1 이 중복되었습니다. "
오류가 발생을 하네요.
그런데 DB.dbo.SP 이 프로시저는 외부시스템 프로시저여서 수정을 할 수 가 없는데.... 어떻게 값을 뽑을 수 있을까요?
-
건우아빠
2014.08.19 11:06
-
taz2315
2014.08.19 11:40
말씀하신대로 해봤는데요.
"분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다. " 라고 나오네요.
http://www.sqler.com/315602#comment_315611
글도 검색해서 봤는데요...
-
원론
2014.08.21 17:43
sp내용이 어떻게 되나요?
Linkedserver.dbo.table 이렇게 해야 될 겁니다.