none
MSSQL2000 ->2008R2 업그레이드 이후 문제인, MSSQL 2008 R2에서 링크드 서버로 연동된 테이블의 DML 구문 작성시 에러가 발생되어 문의 드립니다. RRS feed

  • 질문

  • 안녕하세요

    MSSQL2000 ->2008R2 업그레이드 이후에 발생된,

    MSSQL 2008 R2에서 링크드 서버로 연동된 테이블의 DML 구문 작성시 에러가 발생되어 문의 드립니다.

    A 서버: Window Server 2008 R2 STD, SQL Server 2008 R2(64bit)
    B 서버: Window Server 2003 STD, SQL Server 2002

    에러 발생 구문: A 서버에서 실행
    update [Remote B 서버].[DBName].DBO.[TablaName1] set [type]=1,[cdate]=getdate()
    from [Remote B 서버].[DBName].DBO.[TablaName1] a
         inner join [Remote B 서버].[DBName].DBO.[TablaName2] b      on a.[id]=b.[id]

    where a.[name]=b.[name] and a.[type]=0 and a.[server]=@server

    에러 코드
    메시지 682, 수준 22, 상태 148, 줄 1
    내부 오류입니다. 열 값을 읽기 위해 제공된 버퍼가 너무 작습니다. DBCC CHECKDB를 실행하여 손상 여부를 확인하십시오.

    참고 사항
    select 구문은 정상 조회됨
    처리될 row가 single-row인 경우는 정상 처리됨
    multi-row인 경우 에러 발생
    SQLServer2000에서는 정상 처리된 구문이나 2008R2로 업그레이드 테스트시에 에러가 발생됨을 확인함
    B 서버 환경을 A서버와 동일한 환경으로 변경 후 테스트 해봐도 동일 에러 발생

    2008R2에서는 위와 같은 구문이 지원이 안되는 것인지, 추가 설정(패치) 사항이 있는지 궁금합니다.



    • 편집됨 ygjeong2 2012년 8월 2일 목요일 오전 8:49
    2012년 8월 2일 목요일 오전 8:42

모든 응답

  • 안녕하십니까? ygjeong2 님,
    Microsoft TechNet 의 Forum 사이트를 방문해 주셔서 감사합니다.

    현재 문의 하신 ”MSSQL2000 ->2008R2 업그레이드 이후 문제인, MSSQL 2008 R2에서 링크드 서버로 연동된 테이블의 DML 구문 작성시 에러가 발생되어 문의 드립니다." 대해 답변을 드리겠습니다.

    위와 같은 문제가 SQL2005에서 발생하여 해결되었습니다. SQL 2008 R2에서 발생하는 부부분은 좀더 검토 후 다시 업데이트 해드리겠습니다.

    [원인]
    SQL Server 2005에서 임시 테이블이 캐시 된 때문에이 문제가 발생 합니다. 테이블 스키마가 그대로 유지 하는 경우 캐시 된 임시 테이블을 다시 사용 됩니다. 그러나 테이블 스키마가 변경 된 경우에 캐시 된 임시 테이블 제대로 다시 않습니다 사용할 수 있습니다.

    [해결책]
    SQL Server 2005 서비스 팩 2용 누적 업데이트 패키지 2를 사용할 수 있음
    http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=936305&kbln=ko

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

     

    2012년 8월 3일 금요일 오전 8:33
    중재자