sql >> Databasteknik >  >> RDS >> Sqlserver

ändra till databas till 'online' och ställ in db till 'multi-user'

^ Det här är problemet du måste lösa.

Se till att du inte finns i den databasen. Stäng alla frågefönster som är anslutna till den, stäng av Object Explorer Details, stäng SSMS och öppna den igen utan Object Explorer ansluten till den servern, etc. Kör detta:

USE [master];
GO

ALTER DATABASE mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
USE mydb;
GO

Det borde göra det möjligt för dig att lägga den online, sedan kör du kommandona du listade.

Men:

  • Detta kan ta längre tid än du kanske, beroende på vilken återställningsaktivitet som måste hända med de sessioner du sparkar ut.
  • Det är alltid möjligt att när du ställer in den på en användare kan en annan process vara snabbare än du och ta den enda anslutningen. Om du upptäcker att detta händer kan du ta reda på vem det använder sp_whoisactive eller DMVs som sys.dm_tran_locks - det kan vara så att du behöver stänga av anslutningsapplikationer och/eller stänga av SQL Server Agent.


  1. Hur man får kolumnvärde utan decimal i MYSQL

  2. Hur hittar man lagrade procedurer efter namn?

  3. SQL-begäran för att hitta om en period är helt täckt

  4. Hur kan jag utföra en SELECT DISTINCT på alla fält utom en BLOB?