bestsource

SQL Server 세션에서 자동 커밋을 설정하는 방법은 무엇입니까?

bestsource 2023. 6. 28. 21:52
반응형

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 Whit가 말했듯이 자동 커밋은 SQL Server 2000 이상의 기본값입니다.

저는 더 영구적이고 빠른 방법을 원했습니다.실제 Update/Insert 쿼리를 작성하기 전에 줄을 추가하는 것을 잊어버리는 경우가 많기 때문입니다.

옵션에서 SET INCLIVE_TRANSACTIONs 확인란을 선택하여 수행했습니다.옵션으로 이동하려면 도구>옵션>선택합니다.쿼리 실행>SQL Server>Microsoft SQL Server Management Studio의 ANSI를 참조하십시오.

반드시 실행하십시오.commit또는rollback쿼리 실행을 완료한 후에 선택합니다.그렇지 않으면 쿼리를 실행했을 테이블이 다른 사용자를 위해 잠기게 됩니다.

자동 커밋은 SQL Server의 기본 트랜잭션 관리 모드입니다(SQL 2000 이후).

참조: 트랜잭션 자동 커밋

SQL Server 2005 Express를 사용하면 자동 커밋이 해제된 경우에도 Management Studio 세션에서 커밋 명령을 실행하지 않고 DB 테이블에 삽입이 커밋되었습니다.유일한 차이점은 자동 커밋이 꺼져 있을 때 모든 삽입을 롤백할있다는 것입니다. *자동 커밋 사용하면 그럴 없습니다.사실, 제가 틀렸어요.autocommit 모드를 해제하면 명령이 실행된 QA(Query Analyzer) 창에서만 변경 내용이 표시됩니다.새 QA(Query Analyzer) 창을 열었을 때 첫 번째 창(세션)에서 변경된 내용이 표시되지 않습니다. 즉, 변경 내용이 커밋되지 않았습니다!다른 세션(QA 창)에 변경 사항을 표시하기 위해 명시적 커밋 또는 롤백 명령을 발행해야 했습니다. 죄송합니다! 일이 제대로 진행되고 있습니다.

언급URL : https://stackoverflow.com/questions/1090240/how-do-you-set-autocommit-in-an-sql-server-session

반응형