SQL Server 세션에서 자동 커밋을 어떻게 설정합니까?
SQL Server 세션에서 자동 커밋을 어떻게 설정합니까?
implicit_transactions를 OFF로 설정하여 자동 커밋을 켤 수 있습니다.
SET IMPLICIT_TRANSACTIONS OFF
설정이 ON이면 암시 적 트랜잭션 모드로 돌아갑니다. 암시 적 트랜잭션 모드에서는 모든 변경 사항이 수동으로 커밋해야하는 트랜잭션을 시작합니다.
예가 더 명확 할 수 있습니다. 이렇게하면 데이터베이스에 변경 사항이 기록됩니다.
SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
COMMIT TRANSACTION
이것은 데이터베이스에 변경 사항을 기록하지 않습니다.
SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
다음 예제는 행을 업데이트 한 다음 커밋 할 트랜잭션이 없다고 불평합니다.
SET IMPLICIT_TRANSACTIONS OFF
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
Mitch Wheat가 말했듯이 자동 커밋은 Sql Server 2000 이상에서 기본값입니다.
더 영구적이고 더 빠른 방법을 원했습니다. 실제 업데이트 / 삽입 쿼리를 작성하기 전에 추가 줄을 추가하는 것을 잊는 경향이 있기 때문입니다.
나는 확인하여 그것을했다 SET를 IMPLICIT_TRANSACTIONS에게 옵션에서 체크 박스를. 옵션으로 이동하려면 Microsoft SQL Server Management Studio에서 도구> 옵션> 쿼리 실행> SQL Server> ANSI 를 선택합니다.
실행 commit
하거나 rollback
쿼리 실행을 마친 후에 확인하십시오 . 그렇지 않으면 쿼리를 실행했을 테이블이 다른 사용자를 위해 잠 깁니다.
자동 커밋은 SQL Server의 기본 트랜잭션 관리 모드입니다. (SQL 2000 이상)
참조 : 자동 커밋 트랜잭션
SQLServer 2005 Express를 사용하면 자동 커밋이 꺼져 있어도 실제로 Management Studio 세션에서 커밋 명령을 실행하지 않고 Db 테이블에 대한 삽입 이 커밋 된다는 사실을 발견 했습니다. 유일한 차이점은 자동 커밋이 꺼져 있을 때 모든 삽입을 롤백 할 수 있다는 것입니다. * 자동 커밋을 사용 하면 할 수 없습니다. * 사실 나는 틀렸다. 자동 커밋 모드를 끄면 명령이 실행 된 QA (쿼리 분석기) 창에만 변경 사항이 표시됩니다. 새 QA (쿼리 분석기) 창을 열면 첫 번째 창 (세션)에서 변경 한 내용이 표시되지 않습니다. 즉, 커밋되지 않았습니다! 다른 세션 (QA 창)에 변경 사항을 표시하기 위해 명시 적 커밋 또는 롤백 명령을 실행해야했습니다.내 잘못이야! 모든 것이 올바르게 작동하고 있습니다.
참고 URL : https://stackoverflow.com/questions/1090240/how-do-you-set-autocommit-in-an-sql-server-session
'Programing' 카테고리의 다른 글
.NET 4.0에서 매우 높은 메모리 사용량 (0) | 2020.11.28 |
---|---|
data.table의 .EACHI? (0) | 2020.11.28 |
컨트롤 색상을 어떻게 호출 할 수 있습니까? 기본 양식 색상을 의미합니까? (0) | 2020.11.27 |
Java 제네릭 : 여러 제네릭 매개 변수? (0) | 2020.11.27 |
단순 대리자 (대리자) 대 멀티 캐스트 대리자 (0) | 2020.11.27 |