트리거를 통해 생성 된 의심스러운 데이터베이스 트랜잭션을 디버깅하려고 시도했으며 T-SQL을 단계별 실행 중 예기치 않은 결과가 발생했습니다. 다음 FETCH NEXT FROM Updated_Cursor
통해 커서의 값을 얻은 후에, 난 삽입 일부 처리 이후할지 여부를 결정하는 두 가지 변수를 평가할 커서로부터 페치 각 행 다음 while 루프를 입력 :커서를 사용하여 TSQL 트리거에서 예기치 않은 동작이 발생했습니다. 값 1과 0을 가진 AND 연산자가 참으로 계산됩니다.
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@first_indicator > 0 AND @second_indicator >0)
BEGIN
--processing and insert occurs here
디버그 모드, 코드를 통해 스테핑, 나는 @first_indicator=1
과 @second_indicator=0
의 값이이 조건이 나에게 이해가되지 않는 사실로 평가되는 것을 볼 수 있습니다. 중복되고 오류가있는 행이 삽입됩니다. 두 변수는 bit
데이터 유형입니다.이 데이터 유형은 관련성이 있다고 생각되지만 왜 이런 일이 발생했는지는 알기 어렵습니다.
잘, 당신의 코드는'second_indicator'를 가지고 있고''값이''second_indictor' (누락 된'a') 인 것을 보아라. 만약 그것이 오타가 아니라면, 두 개의 다른 변수가있다. –
컨텍스트가 충분하지 않습니다. –
OT : 그러나 트리거에서 커서를 사용하지 않으려 고 시도하면 100 회 중 99 회가 잘못됩니다. –