홈 > 익명 > 개나무숲
개나무숲

sql 잘 아는 사람 도움좀 mssql 프로시저 문의

hcdv8Iej 6 154 0

프로시저 직접 sql 에서 호출하면 값이 잘 들어가거든 insert도 있고 update도 있고해



그런데 딩에서 변수 값 그대로 똑같이 넣었는데 insert까지는 잘들어가는데 update문에서 제대로 값이 안들어감 ㅡㅡ;;;


디버깅이 안되서 개답답하다.. 

6 Comments
gXKqoth5 2023.03.07 10:18  
업데이트 드부분을 알려줘바 봐줄께

럭키포인트 28,998 개이득

WavAT330 2023.03.07 11:33  
지피티에 물어봐

럭키포인트 4,728 개이득

lvHh0nQS 2023.03.07 11:37  
변수 값 그대로 사용하면 insert 쿼리에는 문제가 없지만, update 쿼리에서는 문제가 발생한다는 것은 조금 이상한 일입니다. 하지만 디버깅이 안되어 답답하다면, 일단 아래와 같은 몇 가지 방법을 시도해보세요:

프로시저의 입력 매개변수와 변수 이름이 정확하게 일치하는지 확인해보세요. SQL Server에서는 대소문자를 구분하지 않기 때문에 대소문자를 확인하는 것도 중요합니다.

프로시저에서 update문을 수행할 때, 어떤 WHERE 절을 사용하는지 확인해보세요. update문에서 WHERE 절을 사용하지 않으면 모든 행이 업데이트될 수 있습니다.

변수에 저장된 값이 올바른지 확인해보세요. 예를 들어, 변수가 NULL인 경우 또는 유효하지 않은 데이터 유형을 가진 경우 문제가 발생할 수 있습니다.

프로시저에서 업데이트할 대상 테이블이 올바른지 확인해보세요. 테이블 이름이나 스키마 이름이 올바르게 지정되지 않은 경우에는 문제가 발생할 수 있습니다.

프로시저를 실행하는 데 필요한 권한이 있는지 확인해보세요. 실행 권한이 없으면 프로시저가 제대로 작동하지 않을 수 있습니다.

SQL Server Management Studio에서 디버깅을 시도해보세요. 드 라인을 중단시키고 변수의 값을 확인하거나, 쿼리를 실행하면서 결과를 확인할 수 있습니다.

처음에는 무엇이 문제인지 정확히 파악하기 어렵기 때문에 여러 가지 방법으로 접근해볼 필요가 있습니다. 몇 가지 가능한 해결책을 제안해드리겠습니다.

SQL 문장에 문제가 있는지 확인해보세요. UPDATE 문장의 WHERE 조건식을 확인해보거나, SET 구문의 컬럼 값을 확인해보세요. SQL 문장 자체에 문제가 있을 경우 INSERT는 잘 되지만 UPDATE에서는 오류가 발생할 수 있습니다.

변수 값이 잘못 전달되었을 가능성이 있습니다. 변수 값을 출력하는 디버그 드를 추가해보세요. 이를 통해 변수 값이 제대로 전달되었는지 확인할 수 있습니다.

SQL 프로시저가 올바르게 구현되어 있는지 확인해보세요. SQL 프로시저가 UPDATE 작업을 수행하는 부분에서 오류가 발생할 수 있습니다. 이를 확인하기 위해 SQL 프로시저를 분석해보는 것이 좋습니다.

데이터베이스의 권한 문제일 수 있습니다. 데이터베이스 사용자의 권한이 UPDATE 작업을 수행할 수 있는 권한을 가지고 있는지 확인해보세요.

럭키포인트 27,503 개이득

IVrkn7Qh 2023.03.07 11:44  
값이 null이거나 순서가 안맞을듯

럭키포인트 12,512 개이득

m1SUx3D4 2023.03.07 13:41  
일단 insert는 무리없이 잘 되는데 update에서 에러가난다. 가능성은 여러갠데 가장큰 원인은 prepared statement query를 잘못짰을 가능성이 큼. 디버깅이 안된다면 간단하게 prepared로 짠 쿼리를 실행하지말고 sysout으로 찍어봐라

럭키포인트 23,737 개이득

bVRENoVT 2023.03.07 21:50  
트랜잭션 처리 잘못하고 있는거 아님?
프로그램에서 트랜 잭션 열고
insert 서비스 프로시저 호출 하고,
트랜잭션 안 닫고 나와서 롤백 되버리게 하고,
다시 update 프로시저 호출 하면 update 안 되거나 할 수 있을 듯 한데.

럭키포인트 19,880 개이득

오늘의 인기글
제목