SQL 질문과 답변 게시판

Microsoft SQL Server와 관련된 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
글 수 9,951

안녕하세요.


프로시저 생성을 하다보니 해결이 안되는 부분이 있어 도움을 받으려고 글을 남기게 되었습니다.


1. 링크드 서버로 다른(외부 MSSQL)서버의 프로시저를 사용하고 있습니다.


두개의 프로시저를 제공받고 있는데

첫번째 

exec sp_test1 '1' 

결과값은 'test'


두번째

exec sp_test2 'test' 

결과값은 'a', 'b', 'c', d'


이런 형식의 프로시저입니다.

1번 프로시저를 실행한 결과값을 2번 프로시저에 인자값으로 넘겨 호출하게 되면 여러 컬럼의 데이터를 반환합니다.


두가지 프로시저를 따로 따로 사용하다 그럴 필요가 없어져 하나로 통합하여 사용하려 하다보니

문제가 생겼습니다.


1번째 프로시저

exec 링크드서버명.데이터베이스명.소유자.SP_test1 @Option 


2번째 프로시저

exec 링크드서버명.데이터베이스명.소유자.SP_test2 @Option


신규 프로시저

CREATE PROCEDURE New_Procedure

@option as varchar(20) 

)

AS

BEGIN

declare @option2 as varchar(20)


 exec @option2 = 링크드서버명.데이터베이스명.소유자.SP_test1 @option

 exec 링크드서버명.데이터베이스명.소유자.SP_test2 @option2 


END


위와 같이 생성하여 실행 시켰을때


마지막 결과값만 반화되는걸로 알고 있었는데 실 결과는 


아래와 같이 두 개의 행이 나오게 됩니다.


첫번째 프로시저 결과와 두번째 프로시저 결과가 순차적으로 표시가 되는것인데 마지막 결과값만 보여줄수 있을까요?


현재 링크드 서버에 있는 프로시저는 저말고 다른곳에서도 사용하고 있는 중이라 변경이 불가한 점 찹고 부탁드리며

고수분들의 도움의 손길을 기다리고 있겠습니다.


감사합니다.


캡처.JPG






댓글
2017.05.18 03:58:32 (*.122.176.134)
[레벨:43]이리

첫번째 프로시저에서 OUTPUT으로 받아올수 있으면 좋으나 수정이 힘들다고 하시면


새로운 프로시저에서 변수가 아니라 테이블변수 혹은 임시테이블에 값을 받아서 변수에 할당하는 방식으로 하시면 될 거 같습니다.

댓글
2017.05.19 22:27:08 (*.216.112.12)
[레벨:4]상아미

답변 감사드립니다.


테이블 변수 또는 임시테이블에 insert @table exec 링크드서버명.데이터베이스명.소유자.SP_test2 @option2 


위의 쿼리로 변경하여 진행하였으나 이번엔 하기 에러 메시지가 나타나네요.


연결된 서버 "TEST"의 OLE DB 공급자 "SQLNCLI11"이(가) 메시지 "파트너 트랜잭션 관리자가 원격/네트워크 트랜잭션에 대한 지원을 할 수 없습니다."을(를) 반환했습니다.

메시지 7391, 수준 16, 상태 2, 줄 13

연결된 서버 "TEST"의 OLE DB 공급자 "SQLNCLI11"이(가) 분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다.


DTC 설정부터 인터넷 검색을 통해 찾은 방법은 다 해보았으나 아직 해결이 되지 않고 있네요....ㅠㅠ
댓글
2017.05.20 19:22:10 (*.94.136.251)
[레벨:100]건우아빠
댓글
2017.05.20 19:25:00 (*.94.136.251)
[레벨:100]건우아빠
profile

create table test

( option  varchar(10

 

insert into test

exec   exec 링크드서버명.데이터베이스명.소유자.SP_test1 @Option  


select @option2 option  from test


exec 링크드서버명.데이터베이스명.소유자.SP_test2 @option2 


번호
글쓴이
9871 SQL2012 특정 컬럼에 값만큼 행 증가 시킬수있을까요?? 3
[레벨:7]고구망
2017-05-23 281
9870 SQL2012 프로시져 호출시 변수를 배열로.. 2
[레벨:5]슬이슬이
2017-05-22 274
9869 SQL2008쿼리 이런것도 프로시저로 되나요? 2
[레벨:15]문상연
2017-05-22 280
9868 SQL쿼리문의 동일테이블 내에 조회후 업데이트 쿼리 질문 1
[레벨:4]무마뭉
2017-05-21 238
9867 SQL쿼리문의 sql 쿼리 문의 드립니다. 1
[레벨:5]규니깨비
2017-05-19 271
9866 SQL2008 [재질문] 년도의 주차구하는 쿼리;; 2
[레벨:7]기타치는퐝동
2017-05-19 332
9865 SQL2012 2008 과 2012 따로 사용가능한가요? 3
[레벨:3]가마우지
2017-05-18 287
9864 SQL2008쿼리 쿼리좀 만들어주세요 2
[레벨:15]문상연
2017-05-18 321
SQL2012 프로시저 내 프로시저 실행에 대한 문의 4 file
[레벨:4]상아미
2017-05-17 311
9862 SQL2008 해당일의 주차 구하는 방법 질문 2
[레벨:7]기타치는퐝동
2017-05-17 274
9861 SQL2008쿼리 프로시져에서 쿼리를 여러번 날릴수 있나요? 5
[레벨:15]문상연
2017-05-17 301
9860 SQL2008쿼리 데이타 삭제에 관해서...?
[레벨:15]문상연
2017-05-17 216
9859 SQL쿼리문의 mssql -> mysql이관 질문입니다.
[레벨:4]goblin
2017-05-16 216
9858 SQL2008쿼리 조회 쿼리에 대해서..:? 2
[레벨:15]문상연
2017-05-16 247
9857 SQL2005쿼리 테이블을 옮길때...? 6
[레벨:15]문상연
2017-05-15 248
9856 SQL2012 MS SQL 2014 EXPRESS 버전 사용하려고 합니다. 조언 좀 부탁드립니다. 1
[레벨:1]이재홍
2017-05-15 246
9855 SQL2008쿼리 조회시 널처리..? 7
[레벨:15]문상연
2017-05-15 272
9854 SQL2008 트리거가 발생하여 트랜잭션이 종료되었습니다. 일괄 처리가 중단되었습니다. 3
[레벨:1]공대컴공
2017-05-14 275
9853 SQL2012 sqlserveragent가 간혹 혼자서 종료되어 버립니다. file
[레벨:4]철쑤
2017-05-12 236
9852 SQL2008쿼리 해당날짜가 되면 자동으로 카테고리 변경하기..? 4
[레벨:15]문상연
2017-05-11 311





XE Login