나는 매분마다 SQL Server에서 약 200 개의 레코드를 가져 와서 상태 필드를 1로 업데이트하고 변경하지 않고/0을 200 레코드 실패로 기록한 다음 다시 작성해야하는 상황이 있습니다. DB에. 이 경우에는 데이터 테이블을 변경 한 다음 루프의 끝에서 처리 상태에 따라 업데이트 방법을 호출하는 .net 메서드로 이동해야합니다.DataSet 업데이트와 SQL 쿼리
아니면 내가 더 효율적입니다 어떤 방법이
String sql = "update customer set status = 1 where id in ("
while records in dataset
sql = sql + dataset.getId + ","
end while
and the execute sql;
처럼 루프를 만드는 직접적인 방법을 가야하나요? 실제로 알고 싶은 것은 dataTable에서 하나의 열만 변경하고 업데이트하면 백엔드에서 어떻게 쿼리가 실행됩니까? 그것은 단지 하나의 SQL 또는 각 행에 대한 여러가요. 그 다음에 여러 번 SQL 메소드를 사용하거나 다른 제안 된 메소드가 있어야합니다.
? 이것이 데이터에 대한 변경 사항이고 DB에 변경 사항을 다시 쓰는 경우 트리거를 고려할 수 있습니다. – Raj
@Raj 프로세스가 다른 것입니다. 나는 다른 컬럼을 바꾸지 않을 것이다. 그냥 다른 서버에 연결하여 가져온 세부 정보를 기반으로 무언가를 확인하고 해당 상태 열이 상태 열에서 1로 업데이트해야하는 경우를 가정 해 봅시다. 그렇지 않으면 변경되지 않습니다. –
두 번째 방법은 단일 쿼리로 실행되므로 효율적입니다. 하지만 yourDataAdapter.Update (datatable)는 한 번에 한 행을 실행하므로 200 개의 쿼리가 실행됩니다 (최악의 경우). 하지만 더 나은 해결책을 찾으려는데, DB 수준에서이 작업을 저장 프로 시저에서 수행하는 것과 같습니다. – Kash