2012-10-12 7 views
5

다음과 같은 insert 문이 있습니다. 내 스토어드 프로 시저를 디버그하고 코드를 실행하여 코드가 실행되는지 확인할 수 있지만 재미있는 일이 발생합니다.SQL Server insert 문이 성공적으로 실행되었지만 행이 만들어졌지만 값이 테이블에 추가되지 않았습니다.

데이터베이스에 저장 될 것으로 예상되는 값은 저장되지 않습니다. 대신 행이 테이블에 생성되고 RecordCreatedField이 올바르게 생성됩니다. 기본 키가 포함되어 있어도 실제로 삽입 될 것으로 예상되는 열은 포함되지 않습니다. 날짜 열과 ID를 제외하고 모든 열은 nvarchar/varchar이지만 열만 채워집니다. 그러나 다음 @PRCUPC, @ PRCEAN, @ PRCGTIN, @ PRCatalogNumber은 어떻게 든 생략됩니다.

EXEC spinsertprodcode 
        @pid out, 
        @ProdID, 
        @UPC, 
        @EAN, 
        @TIN, 
        @CNumber, 
        0, 
        0, 
        1, 
        @staid, 
        @counter out 



INSERT INTO dbo.ProdCodes 
(PRProductID 
,PRCUPC 
,PRCEAN 
,PRCGTIN 
,PRCatalogNumber 
,PRIsReplacement 
,PRIsReplaced 
,PRCRecordCreatedDate 
,PRCIsActive 
,PRStatusFlag) 

OUTPUT INSERTED.PRCID INTO @opID 

VALUES 
(@PRProductID, 
@PRCUPC, 
@PRCEAN, 
@PRCGTIN, 
@PRCatalogNumber, 
@PRIsReplacement , 
@PRIsReplaced, 
GETDATE(), 
@PRCIsActive, 
@PRStatusFlag) 

SELECT @PRCID = O.ID FROm @opID O 

이 문제를 어떻게 해결할 수 있는지 또는 어떤 일이 벌어지고 있는지 이해할 수있는 의견을 보내 주시면 감사하겠습니다.

Image of the Debug Screen where I confirm the right values are passed

여기 내 삽입 코드를 호출하는 주요 저장된 프로 시저의 SQL 바이올린입니다. SQL Fiddle of my code

+6

저장 프로 시저를 호출하는 데 사용하는 코드를 게시 할 수 있습니까? 매개 변수가 올바르게 설정되지 않았을 수도 있습니다. – d89761

+0

값을 마우스로 가져가 올바르게 전달되었는지 확인할 수 있습니다. 삽입 점에 호출 된 코드를 밟아서 점을 설치하기 위해 값이 있는지 확인할 수도 있습니다. – Kobojunkie

+1

테이블에 방아쇠가 있습니까? –

답변

1

@Kobojunkie : 당신은 T-SQL 모범 사례의 황금 규칙 중 하나 따른다면 문제의이 종류는 쉽게 관리 할 수 ​​있습니다 문을 INSERT에 대한 귀하의 코드를 포장하고 삭제하는 try/catch 블록을 사용합니다. 이 정보는 sproc에 내 문제를 해결하는 데 도움이

BEGIN CATCH 
    SELECT @ErrorDetails = 
      N'Error raised when executing [Insert/Delete] statement: ' 
      + N' SQL Error: ' + ERROR_NUMBER() 
      + N', Level: ' + ERROR_SEVERITY() 
      + N', Line: ' + ERROR_LINE() 
      + N', Message: ' + ERROR_MESSAGE() 
END CATCH 

희망 : ERROR_NUMBER, ERROR_SEVERITY, ERROR_PROCEDURE, ERROR_LINE 및 ERROR_MESSAGE와 같은 시스템 변수를 포함한 approapiate CATCH 블록을 갖는 것은 당신에게 작업이 수행되고 잘못 무슨 일이 일어나고 있는지에 대한 단서를 제공합니다 !

관련 문제