데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안년하세요..sql 완전 생 초보입니다...
한 3일 고민하고 질문을 합니다. ㅜㅜ
아래 쿼리 내용은 T2.TEST.dbo.T_A 에서 T1.TEST.dbo.T_A 로 insert를 하기 위함입니다.
아래 쿼리는 Local 에서 Local로 insert를 실행했을 때 입니다.
SET IDENTITY_INSERT T1.TEST.dbo.T_A ON
INSERT INTO T1.TEST.dbo.T_A (A1, A2, A3, A4, A5, A6, A7, A8, A9, A0)
SELECT A1, A2, A3, A4, A5, A6, A7, A8, A9, A0
FROM T2.TEST.dbo.T_A
SET IDENTITY_INSERT T1.TEST.dbo.T_A OFF;
==여기 까지는 정상적으로 insert가 되었습니다.
이제 진짜 질문은 여기서 부터 입니다.
질문 내용은 T2.TEST.dbo.T_A(Local)에서 T1.TEST.dbo.T_A(Linked Server) 로 insert를 하기 위함입니다.
SET IDENTITY_INSERT T1.TEST.dbo.T_A ON
INSERT INTO OPENQUERY
('SELECT A1, A2, A3, A4, A5, A6, A7, A8, A9, A0
FROM T2.TEST.dbo.T_A')
VALUES ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A0')
SET IDENTITY_INSERT T1.TEST.dbo.T_A OFF;
위와 같이 쿼리를 실행 했을때 발생하는 오류는
- 개체 "T1.TEST.dbo.T_A"이(가) 없거나 권한이 없으므로 이를 찾을 수 없습니다.
IDENTITY_INSERT가 필요없는 테이블로 실행하였을때의 오류는
- 데이터 형식 varchar을(를) bigint(으)로 변환하는 중 오류가 발생했습니다.
이렇게 오류가 발생합니다.
Linked Server의 설정 쿼리는
EXEC sp_addlinkedserver 'T1', '', 'SQLOLEDB', '192.168.1.100', 'sa', '1234'
EXEC sp_addlinkedsrvlogin 'T1.TEST.dbo.T_A', 'false', NULL, 'sa', '1234'
위와 같이 Linked Server를 등록 하였습니다.
마지막으로 정리하였을때 궁금한점은
1. Linked Server를 이용하여 A -> B 서버로의 Insert 방법
2. Linked Server를 이용하여 A -> B 서버로의 Insert 할때 IDENTITY_INSERT ON의
기능을 정상작으로 사용 하는 방법
위 2가지 항목을 가르쳐 주세요 ㅜㅜ
SELECT * FROM T1.TEST.dbo.T_A