2012-07-25 6 views
0

저는 지난 2 일 동안 어디서나 내 문제에 대한 해결책을 찾아 보았지만 운이 없었습니다.연결된 서버에서 레코드를 삭제하지 못했습니다.

나는 원격 서버에서 레코드를 삭제이 쿼리가 있습니다

delete from OPENROWSET('SQLNCLI', 'Server=AB01S\SQLEXPRESS;Database=ShopData;Trusted_Connection=yes', 'Select receipt_n,action_in, action_ty, action_field_name,action_field_type,action_field_data, terminal from tblData where receipt_n= 1 and terminal = 1'); 

을 나는이 오류가 무엇입니까 :

OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.". 
Msg 7202, Level 11, State 1 

또한 연결된 서버를 추가 할 sp_addlinkedserver를 사용하여 제안합니다.

일부 노트 :

  1. 이는이 특정 컴퓨터 + 원격 서버에서 발생합니다. 2 개의 다른 역 (컴퓨터 + 서버)에서 그것은 잘 작동했습니다.
  2. OpenRowSet에 삽입하면 정상적으로 작동합니다.
  3. * OpenRowSet에서 선택 * 확인을 누릅니다. => 선택 항목을 삭제하려면 *를 변경하면됩니다.
  4. 광고 HOK는
  5. 원격 연결이 내가 서버 (AB01S) 지금까지 내가 시도

를 Ping 할 수

  • 이 링크를 부가 OPENROWSET을 통해 조회되는 컴퓨터에서 사용할 쿼리 컴퓨터에서 사용 가능 GUI 및 sp_addlinkserver을 통해 설치하십시오.

  • 답변

    1

    문제가 발생했습니다.

    서버 이름 (어떤 이유로)이 잘못되었습니다. @@servername는 해결책이었다

    AB01S_88

    을 반환 다음 코드를 실행 한 다음 서비스를 다시 시작 :

    exec sp_dropserver @@servername 
    exec sp_addserver 'AB01S', local 
    exec sp_serveroption 'AB01S', 'data access' , 'true'