Dela via


Ange en databas till enanvändarläge

gäller för:SQL Server

Den här artikeln beskriver hur du anger en användardefinierad databas till enanvändarläge i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Läge för en användare anger att endast en användare i taget kan komma åt databasen och används vanligtvis för underhållsåtgärder.

Begränsningar

  • Om andra användare är anslutna till databasen vid den tidpunkt då du ställer in databasen på enanvändarläge stängs deras anslutningar till databasen utan förvarning.

  • Databasen förblir i enanvändarläge även efter att användaren som anger alternativet är frånkopplad. Då kan en annan användare, men bara en, ansluta till databasen.

Förutsättningar

  • Innan du ställer in databasen på SINGLE_USER kontrollerar du att alternativet AUTO_UPDATE_STATISTICS_ASYNC är inställt på OFF. När det här alternativet är inställt på ONtar bakgrundstråden som används för att uppdatera statistik en anslutning mot databasen, och du kommer inte att kunna komma åt databasen i enanvändarläge. Mer information finns i ALTER DATABASE SET Options (Transact-SQL).

Behörigheter

Kräver ALTER-behörighet för databasen.

Använda SQL Server Management Studio

Så här anger du en databas till enanvändarläge:

  1. I Object Exploreransluter du till en instans av SQL Server Database Engine och expanderar sedan den instansen.

  2. Högerklicka på databasen för att ändra och välj sedan Egenskaper.

  3. I dialogrutan Databasegenskaper väljer du sidan Alternativ.

  4. I alternativet Begränsa åtkomst väljer du Enskild.

  5. Om andra användare är anslutna till databasen visas ett Öppna anslutningar meddelande. Om du vill ändra egenskapen och stänga alla andra anslutningar väljer du Ja.

Du kan också ställa in databasen på flera eller begränsad åtkomst med hjälp av den här proceduren. Mer information om alternativen Begränsa åtkomst finns i Databasegenskaper (alternativsida).

Använd Transact-SQL

Så här anger du en databas till enanvändarläge:

  1. Anslut till databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. I det här exemplet anges databasen till SINGLE_USER läge för att få exklusiv åtkomst. I exemplet anges sedan tillståndet för den AdventureWorks2022 databasen till READ_ONLY och returnerar åtkomst till databasen till alla användare.

Varning

För att snabbt få exklusiv åtkomst använder kodexemplet avslutningsalternativet WITH ROLLBACK IMMEDIATE. Detta gör att alla ofullständiga transaktioner återställs och alla andra anslutningar till AdventureWorks2022-databasen kopplas från omedelbart.

USE master;
GO
ALTER DATABASE AdventureWorks2022
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2022
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2022
SET MULTI_USER;
GO