0

SSMS が実行されていないときは、データベースの読み取りと書き込みを正常に行うことができます。ただし、SSMS を起動してデータベースを参照すると、アプリケーションがそのデータベースにアクセスできません (エラー: ログインによって要求されたデータベース "データベース名" を開けません)。ただし、サーバーから切断して SSMS をシャットダウンしても、アプリケーションからエラー メッセージが表示されます。データベースへのアクセスを回復する唯一の方法は、毎回 SQL サーバーを再起動することです。助けてください

4

1 に答える 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 に答える