출처 : http://mrdingku.tistory.com/41
앞의 글(SQL Server Management Studio를 사용해서 연결된 서버를 등록하기)을 따라 연결된 서버를 등록했다
이제 SQL Server에서 연결된 서버의 Table을 OpenQuery를 이용하여 조회하고 등록하고 수정하고 삭제해보겠다.
## Select
1 | SELECT * FROM OPENQUERY(L_TESTDB, 'SELECT * FROM LinkedServerTestTable' ); |
## Insert
1 | INSERT OPENQUERY(L_TESTDB, 'SELECT NO, NAME FROM LinkedServerTestTable ' ) VALUES (1, '홍길동' ); |
## Update
1 | UPDATE OPENQUERY(L_TESTDB, 'SELECT NAME FROM LinkedServerTestTable WHERE NO = 1' ) SET NAME = '임꺽정' ; |
## Delete
1 | DELETE FROM OPENQUERY(L_TESTDB, 'SELECT NO FROM LinkedServerTestTable WHERE NO = 1' ); |
어렵지않다. 찾으면 쉽게 알 수 있다.
공부하자~~!!!!
########## 추가 ##########
프로시저에서 openquery를 이용하여 update하는데, where절에 NO = @P_NO 파라미터를 넣었더니 바로 에러가 나더라는.....
그래서 확인해보니 openquery에는 string 만들어가야 한다는 사실을 알게 되었다.. 그놈 참... 까다롭네그려... ㅡㅡ;;;
그래서
1 2 3 4 5 | @_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+''''' 요렇게...
'DataBase' 카테고리의 다른 글
실행 중인 쿼리의 처리 상태 확인 - sys.dm_exec_requests (0) | 2013.08.01 |
---|---|
MSSQL Lock 정보 확인 및 해제 (0) | 2013.08.01 |
TXT,CVS 데이터를 한번에 INSERT 하는 법(BULK INSERT) (0) | 2013.04.19 |
SELECT * INTO와 INSERT INTO SELECT..의 차이점 (0) | 2013.04.19 |
특정 컬럼명을 사용하는 모든 테이블 검색하는 쿼리 (0) | 2013.04.15 |