2014-02-10 5 views
1

내 코드는 SQL Server 2008에 로컬로 잘 작동하지만 SQL Server 2005의 원격 인스턴스에서 던지고있는 C# 코드의 XML로 전달되는 데이터를 삽입합니다 다음 예외. 도와주세요.다음 SET 옵션의 설정이 올바르지 않아서 INSERT 오류가 발생했습니다.

PROCEDURE SqAnswersInsert @AnswerID INT 출력 만들기
는 @ClientID INT = NULL,
@VGBID INT = NULL,
@CreatedOn DATETIME = NULL은
@XmlOptions의 XML은 = NULL AS 시작

SET ARITHABORT ON    
    INSERT SqAnswers   
     (ClientID,   
      VGBID,   
      [CreatedOn])   
    VALUES (@ClientID,   
      @VGBID,   
      @CreatedOn)   

    SET @AnswerID=Scope_identity()   

    INSERT INTO SqAnswerOptions   
       (AnswerID,   
       QuestionOptionID)   

    SELECT @AnswerID,A.B.value('QuestionOptionID[1]', 'INT') AS QuestionOptionID   
    --A.B.value('QuestionOptions/QuestionOptionID', 'INT') as QuestionOptionID   
    FROM @XmlOptions.nodes('/QuestionOptions/Option') A(B)   
    SET ARITHABORT OFF    END 

다음 SET 옵션의 설정이 잘못되어 INSERT에 실패했습니다 : 'ARITHABORT'. SET 옵션이 계산 된 열 및/또는 필터링 된 인덱스 및/또는 쿼리 알림 및/또는 XML 데이터 형식 메서드 및/또는 공간 인덱스 작업에서 인덱싱 된 뷰 및/또는 인덱스와 함께 사용되는지 확인하십시오. 당신이 당신의 데이터베이스의 인덱싱 된 뷰가있는 경우

+0

당신은 당신의 쿼리를 게시 할 수 있습니다? –

+0

@NagarajS 지금 쿼리를 확인하십시오. –

답변

2

, 당신은 SQL 명령
SET ARITHABORT ON 당신이 다른 SQL 명령을 실행하기 전에 Microsoft SQL Server에 연결할 때마다 실행해야합니다. 오버플로 또는 0으로 나누기 오류가 쿼리 실행 중 발생하는 경우

당신은 당신의 데이터베이스 뷰

SET ARITHABORT에서 인덱스를 삭제하여이 오류를 제거 할 수는 쿼리를 종료합니다. 윈스 테크넷

에서

1. If SET ARITHABORT is ON and SET ANSI WARNINGS is ON, these error 
    conditions cause the query to terminate. 
2. If SET ARITHABORT is ON and SET ANSI WARNINGS is OFF, these error 
    conditions cause the batch to terminate. If the errors occur in a 
    transaction, the transaction is rolled back. If SET ARITHABORT is 
    OFF and one of these errors occurs, a warning message is displayed, 
    and NULL is assigned to the result of the arithmetic operation. 
3. If SET ARITHABORT is OFF and SET ANSI WARNINGS is OFF and one of 
    these errors occurs, a warning message is displayed, and NULL is 
    assigned to the result of the arithmetic operation. 
+0

감사합니다. Vignesh, 내 문제는 해결되었지만 산술 연산이나 인덱싱 된 뷰를 사용하지 않는 경우 왜이 오류가 발생합니까? –

+0

@AjaySuwalka 로그온 세션이있을 수 있습니다. –

+1

아니요, 가지고 있지 않습니다. –

0
SET 
ANSI_NULLS, 
QUOTED_IDENTIFIER, 
CONCAT_NULL_YIELDS_NULL, 
ANSI_WARNINGS, 
ANSI_PADDING 
ON; 

INSERT INTO TABLE(@CLOUMNS) VALUES(@VALUE) 
관련 문제