SQL Server上で現在のデータベースのトランザクションレベルをどのように確認しますか?現在の取引レベルを見つけるにはどうすればよいですか?
答えて
を実行し、この:
SELECT CASE transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'ReadUncommitted'
WHEN 2 THEN 'ReadCommitted'
WHEN 3 THEN 'Repeatable'
WHEN 4 THEN 'Serializable'
WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL
FROM sys.dm_exec_sessions
where session_id = @@SPID
のネストのレベルについては、@@TRANCOUNT
を使用します。
トランザクション分離レベルの話をしている場合は、DBCC USEROPTIONS
を使用して分離レベルのオプションを探します。設定されていない場合は、がコミットされました。です。
はまた、心に留めておくとあなたのセッションの分離レベルですが、それは扱いにくいことがあります - あなたのコードがトランザクションごとの分離レベルを変更した場合、分離レベルがセッションのデフォルトと異なる場合は、キャプチャするのが難しい場合があります。たとえば、分離レベルxでセッションを開き、セッション内の特定のトランザクションの期間、分離レベルをyに変更すると、DBCC USEROPTIONSは、そのトランザクション外で呼び出された場合、そのセッションを表示しません。 – DCaugs
SQL Server 2012で「DBCC USEROPTIONS」の「分離レベル」が「読み取りコミット」に設定されています –
DECLARE @UserOptions TABLE(SetOption varchar(100), Value varchar(100))
DECLARE @IsolationLevel varchar(100)
INSERT @UserOptions
EXEC('DBCC USEROPTIONS WITH NO_INFOMSGS')
SELECT @IsolationLevel = Value
FROM @UserOptions
WHERE SetOption = 'isolation level'
-- Do whatever you want with the variable here...
PRINT @IsolationLevel
これはSQL Azure – Ronny
+1で動作しません。その理由は、コミットされたままで(デフォルトの共有ロックメカニズムではなく)使用されているときに 'スナップショット'も表示されるからです。 –
これは過剰です。thaagohは – user1075613
SELECT CASE
WHEN transaction_isolation_level = 1
THEN 'READ UNCOMMITTED'
WHEN transaction_isolation_level = 2
AND is_read_committed_snapshot_on = 1
THEN 'READ COMMITTED SNAPSHOT'
WHEN transaction_isolation_level = 2
AND is_read_committed_snapshot_on = 0 THEN 'READ COMMITTED'
WHEN transaction_isolation_level = 3
THEN 'REPEATABLE READ'
WHEN transaction_isolation_level = 4
THEN 'SERIALIZABLE'
WHEN transaction_isolation_level = 5
THEN 'SNAPSHOT'
ELSE NULL
END AS TRANSACTION_ISOLATION_LEVEL
FROM sys.dm_exec_sessions AS s
CROSS JOIN sys.databases AS d
WHERE session_id = @@SPID
AND d.database_id = DB_ID();
より教育的になるようにコードを詳述してください。 – lpapp
だけDBCC useroptions
を実行して、あなたはこのような何か買ってあげる:DBCC USEROPTIONSを見つけるための素晴らしいオプションです
Set Option Value
--------------------------- --------------
textsize 2147483647
language us_english
dateformat mdy
datefirst 7
lock_timeout -1
quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET
isolation level read committed
と、少なくともSQL Server 2008の場合は、アクティブになったときに「読み込まれたスナップショット」が読み取られます(RCスナップショットとロックを参照) – user1075613
- 1. Drupal 7では、カスタムブロックで現在のページを見つけるにはどうすればよいですか?
- 2. Googleマップで現在のズームレベルを見つけるにはどうすればよいですか?
- 3. 現在、Macosに焦点を当てたプログラムを見つけるにはどうすればよいですか?
- 4. ダーツで現在のディレクトリを見つけるにはどうすればいいですか?
- 5. Macで現在のdbレベルを出力するにはどうすればよいですか?
- 6. Windows環境で現在のユーザーをどのように見つけますか?
- 7. レーキタスクのソースファイルを見つけるにはどうすればよいですか?
- 8. 2レベルの深さのmongodbレコードを見つけるにはどうすればいいですか?
- 9. どのようにOracleの現在開いているカーソルを見つける
- 10. JTableでセルタイピングイベントを見つけるにはどうすればよいですか?
- 11. k-bestソリューションを見つけるにはどうすればよいですか?
- 12. BFSで実際に見つかったパスを見つけるにはどうすればよいですか?
- 13. Pythonで現在のファイル、現在のクラス、および現在のメソッドを取得するにはどうすればよいですか?ファイルの
- 14. EntityFramework 6:以前に見つかったレコードを見つけるにはどうすればよいですか?
- 15. 現在の変数と現在の変数を比較するにはどうすればよいですか?
- 16. 重複を見つけるT-SQLコードを取得するにはどうすればよいですか?
- 17. JSONに値の存在を見つけるにはどうすればいいですか
- 18. 私のパッケージを見つけるにはどうすればいいですか?
- 19. 現在開いているフォルダのファイルパスを取得するにはどうすればよいですか?
- 20. XcodeでUILabelを見つけるにはどうすればいいですか?
- 21. 最後にを見つけるにはどうすればいいですか?
- 22. Jenkinsfile内から現在のgitチェンジセットにタグを付けるにはどうすればよいですか?
- 23. 現在のスコープで見つかることができる未修飾の名前のリストを取得するにはどうすればよいですか?
- 24. ビジュアルスタジオ2012でWindowsデザイナーを見ているコントロールを見つけるにはどうすればよいですか?
- 25. テーブル単位のマッピングのレベルを1つだけクエリするにはどうすればよいですか?
- 26. MacとBSDの現在のスレッドが実行されているCPUを見つけるにはどうすればよいですか?
- 27. C#で現在の短いDateTime形式を取得するにはどうすればよいですか?
- 28. NSDateから現在までの日数を取得するにはどうすればよいですか?
- 29. 現在のジオポイントをiPhoneで一度しか取得するにはどうすればよいですか?
- 30. 現在、Macのメニューバーにあるアイコンのリストを取得するにはどうすればよいですか?
これはSQL Azureで動作します:-) – Ronny
分離レベルが "read_commited_snapshot"の場合、これは正確ではありません。この場合、「Readcommited」のみが表示されます。 – GaTechThomas
@GaTechThomas、 'READ_COMMITTED_SNAPSHOT'は分離レベルではなく、' ReadDCommitted'分離レベルデータベース全体の動作を変更できるデータベースオプションです。 –