在SQL Server 2005中,是否可以基于每个用户设置事务隔离级别?

时间:2010-09-10 14:47:34

标签: sql-server sql-server-2005 tsql

在SQL Server 2005中,是否可以自动将事务隔离级别设置为读取未提交的每个用户?

(例如,如果我为用户Fred设置了这样的登录选项,Fred就不必记得用NOLOCK提示撒上他的select语句,或者记得在他的sql中添加set transaction isolation level语句。)< / p>

1 个答案:

答案 0 :(得分:2)

如果是存储过程,你可以在procs中使用这样的代码

if user_name() in('dbo','username','otherusers','bla') 
set transaction isolation level read uncommitted
else
set transaction isolation level read committed

但是当然现在你有一个维护问题,所有当前的过程都必须修改

你也可以用suser_sname()来检查,但这确实变成了一个大的PITA

你也可以使用LOGON Trigger我没试过但不确定它是否会起作用