개발

OpenQuery를 이용한 Select, Insert, Update, Delete

Mr. Dingku 2012. 11. 1. 13:31

앞의 글(SQL Server Management Studio를 사용해서 연결된 서버를 등록하기)을 따라 연결된 서버를 등록했다


이제 SQL Server에서 연결된 서버의 Table을 OpenQuery를 이용하여 조회하고 등록하고 수정하고 삭제해보겠다.


## Select

SELECT * FROM OPENQUERY(L_TESTDB, 'SELECT * FROM LinkedServerTestTable');


## Insert

INSERT OPENQUERY(L_TESTDB, 'SELECT NO, NAME FROM LinkedServerTestTable ') VALUES (1, '홍길동');


## Update

UPDATE OPENQUERY(L_TESTDB, 'SELECT NAME FROM LinkedServerTestTable WHERE NO = 1') SET NAME = '임꺽정';


## Delete

DELETE FROM OPENQUERY(L_TESTDB, 'SELECT NO FROM LinkedServerTestTable WHERE NO = 1');


어렵지않다. 찾으면 쉽게 알 수 있다.

공부하자~~!!!!


########## 추가 ##########

프로시저에서 openquery를 이용하여 update하는데, where절에 NO = @P_NO 파라미터를 넣었더니 바로 에러가 나더라는.....

그래서 확인해보니 openquery에는 string 만들어가야 한다는 사실을 알게 되었다.. 그놈 참... 까다롭네그려... ㅡㅡ;;;


그래서


@_QUERY = '
UPDATE OPENQUERY(L_TESTDB, 'SELECT NAME FROM LinkedServerTestTable WHERE NO = '+@SMS_SEQ+'')
      SET NAME = '''+@NAME+'' '

Execute sp_executesql  @_QUERY, @_PARAMS


주의사항 : 파라미터 부분에 작은 따옴표 " ' "를 넣을때 특수문자여서 하나더 넣어야한다는거 다들 아시지요?? 

@SMS_SEQ가 스트링일 경우, '''''+@SMS_SEQ+''''' 요렇게...

728x90