将IsolationLevel设置为Serializable的TransactionScope锁定所有SQL SELECT

Ada*_*oll 0 c# sql-server powershell transactions transactionscope

我正在使用PowerShell交易; 这将创建一个具有Seri​​alizable的IsolationLevel的CommittableTransaction.问题是,当我在此上下文中执行事务时,除了执行事务的连接之外的任何连接上,除了事务影响的表之外,所有SELECT都被阻塞.我可以在交易中执行获取,但不能在其他任何地方执行.这包括SSMS和其他cmdlet执行.这是预期的行为吗?好像我错过了什么......

PS脚本:

Start-Transaction
Add-Something -UseTransaction 
Get-Something #hangs here until timeout
Add-Something -UseTransaction
Undo-Transaction
Run Code Online (Sandbox Code Playgroud)

Rem*_*anu 6

可序列化事务将阻止在此隔离下扫描的范围的任何更新.序列化隔离级别本身不会阻止读取.如果您发现读取被阻止,则其他内容必须起作用,这取决于您在这些脚本中执行的操作.