[英]Can't access database from application when SSMS is open
当SSMS未运行时,我可以读写数据库。 但是,当我启动SSMS并浏览到数据库时,我的应用程序无法访问该数据库(错误:无法打开登录请求的数据库“数据库名称”)。 但是,当我断开与服务器的连接并关闭SSMS时,仍然会从应用程序中收到错误消息。 我发现重新获得对数据库的访问权的唯一方法是每次都重新启动SQL Server。 请帮忙
听起来您正在以单用户模式运行。 确保您的连接AttachDBFilename=
中没有AttachDBFilename=
。
AttachDBFilename
是SQL Express特有的,它为单个用户模式旋转附加到特定DB Filename的SQL Express用户实例。 对于任何生产服务器,您很可能不会使用AttachDBFilename
。 它对于单用户模式下的开发和实验非常有用。
另外:您可以杀死正在休眠的sql进程,而不是重新启动sql server。
DECLARE @v_spid INT
DECLARE c_Users CURSOR
FAST_FORWARD FOR
SELECT SPID
FROM master..sysprocesses (NOLOCK)
WHERE spid>50
AND status='sleeping'
AND DATEDIFF(mi,last_batch,GETDATE())>=60
AND spid<>@@spid
OPEN c_Users
FETCH NEXT FROM c_Users INTO @v_spid
WHILE (@@FETCH_STATUS=0)
BEGIN
PRINT 'KILLing '+CONVERT(VARCHAR,@v_spid)+'...'
EXEC('KILL '+@v_spid)
FETCH NEXT FROM c_Users INTO @v_spid
END
CLOSE c_Users
DEALLOCATE c_Users
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.