[SQL] 어떻게 저장 프로 시저에 의해 영향을받는 레코드 수를 얻을 수 있나요?
SQL어떻게 저장 프로 시저에 의해 영향을받는 레코드 수를 얻을 수 있나요?
INSERT, UPDATE 및 데이터베이스에 대해 직접 실행 DELETE SQL 문의 경우, 대부분의 데이터베이스 제공 업체는 영향을받는 행의 수를 반환합니다. 저장 프로 시저의 경우, 영향을받는 레코드 수는 항상 -1입니다.
우리는 어떻게 저장 프로 시저에 의해 영향을받는 레코드 수를받을 수 있나요?
해결법
-
==============================
1.저장 프로 시저에 대한 출력 매개 변수를 등록하고, SQL 서버를 사용하는 경우 @@ ROWCOUNT에 따라 값을 설정합니다. 사용의 SQL %의 ROWCOUNT Oracle을 사용하는 경우.
저장 프로 시저에 대한 출력 매개 변수를 등록하고, SQL 서버를 사용하는 경우 @@ ROWCOUNT에 따라 값을 설정합니다. 사용의 SQL %의 ROWCOUNT Oracle을 사용하는 경우.
마음이 각 작업에 대한 @@ ROWCOUNT에서 결과를 저장하기 위해 여러 INSERT / UPDATE / DELETE, 당신이 필요합니다 변수가있는 경우.
-
==============================
2.@@ 행 개수 당신에게 SQL 문에 의해 영향을받는 레코드 수를 줄 것이다.
@@ 행 개수 당신에게 SQL 문에 의해 영향을받는 레코드 수를 줄 것이다.
즉시 나중에 그것을 실행하는 경우 @@ 행 개수에만 작동합니다. 당신이 오류를 트래핑하는 경우 그래서, 당신은 같은 줄에 그것을 할 수 있습니다. 당신이 그것을 분할하는 경우, 당신은 둘 중 하나는 두 번째 넣어 놓치지 않습니다.
SELECT @NumRowsChanged = @@ROWCOUNT, @ErrorCode = @@ERROR
여러 개의 문이있는 경우 각각에 대해 영향을받는 행의 수를 캡처하고 그들을 추가해야합니다.
SELECT @NumRowsChanged = @NumRowsChanged + @@ROWCOUNT, @ErrorCode = @@ERROR
-
==============================
3.SET NOCOUNT ON이와 SqlCommand.ExecuteNonQuery () (SQL Server 관리 Studio에서 기본적으로) 저장 프로 시저 스크립트에서 설정 한 것을 나에게 밝혀; 항상 반환 -1.
SET NOCOUNT ON이와 SqlCommand.ExecuteNonQuery () (SQL Server 관리 Studio에서 기본적으로) 저장 프로 시저 스크립트에서 설정 한 것을 나에게 밝혀; 항상 반환 -1.
@@ ROWCOUNT를 사용하지 않고도 SET NOCOUNT OFF : 난 그냥 오프로 설정합니다.
자세한 내용은 여기 : SqlCommand.ExecuteNonQuery () -1을 반환 삽입 / 업데이트를 수행 할 때 / 삭제
-
==============================
4.Microsoft SQL Server의 저장 프로 시저의 마지막 문에 의해 영향을받는 행의 수를 반환하는 @@ ROWCOUNT 변수를 반환 할 수 있습니다.
Microsoft SQL Server의 저장 프로 시저의 마지막 문에 의해 영향을받는 행의 수를 반환하는 @@ ROWCOUNT 변수를 반환 할 수 있습니다.
-
==============================
5.@@ ROWCOUNT
@@ ROWCOUNT
-
==============================
6.경고 : @@ 테이블이 변경되는 경우 ROWCOUNT 가짜 데이터를 반환 할 수는 연결된 트리거가!
경고 : @@ 테이블이 변경되는 경우 ROWCOUNT 가짜 데이터를 반환 할 수는 연결된 트리거가!
@@의 ROWCOUNT는 트리거가 아닌 실제 문에 의해 영향을받는 레코드 수를 반환합니다!
from https://stackoverflow.com/questions/1201358/how-can-i-get-the-number-of-records-affected-by-a-stored-procedure by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL은 컬럼의 마지막 두 글자 스트립 (0) | 2020.06.25 |
---|---|
[SQL] MySQL은 SELECT AS는 하나에 두 개의 열을 결합 (0) | 2020.06.25 |
[SQL] 데이터베이스 및 테이블을 작성할 SQL 스크립트를 생성 (0) | 2020.06.25 |
[SQL] 트위터 부트 스트랩 모달에 동적으로로드 정보 (0) | 2020.06.25 |
[SQL] 어떻게 아이폰에서 MySQL 데이터베이스에 연결하는? (0) | 2020.06.25 |