SSMS が実行されていないときは、データベースの読み取りと書き込みを正常に行うことができます。ただし、SSMS を起動してデータベースを参照すると、アプリケーションがそのデータベースにアクセスできません (エラー: ログインによって要求されたデータベース "データベース名" を開けません)。ただし、サーバーから切断して SSMS をシャットダウンしても、アプリケーションからエラー メッセージが表示されます。データベースへのアクセスを回復する唯一の方法は、毎回 SQL サーバーを再起動することです。助けてください
1 に答える
0
シングルユーザーモードで実行しているようです。接続文字列に含まれていないことを確認してAttachDBFilename=
ください。
AttachDBFilename
は SQL Express に固有であり、シングル ユーザー モードの特定の DB ファイル名にアタッチされた SQL Express のユーザー インスタンスをスピンアップします。運用サーバーでは、ほとんどの場合、AttachDBFilename
. シングルユーザーモードでの開発と実験に非常に役立ちます。
また: SQLサーバーを再起動するのではなく、スリープ状態のSQLプロセスを強制終了できます。
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
于 2013-06-19T11:51:14.470 に答える