안년하세요..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