sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får återställningsmodellen för en databas i SQL Server med T-SQL

I SQL Server är en återställningsmodell en databasegenskap som styr hur transaktioner loggas, om transaktionsloggen kräver (och tillåter) säkerhetskopiering och vilka typer av återställningsåtgärder som är tillgängliga. Databaser kan använda en av följande tre återställningsmodeller:enkel, fullständig och bulkloggad.

Du kan fråga sys.databases katalogvy för att få en lista över databaser och deras återställningsmodeller.

Exempel

Här är ett exempel att visa:

SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases;

Resultat:

+-----------------------+-----------------------+
| name                  | recovery_model_desc   |
|-----------------------+-----------------------|
| master                | SIMPLE                |
| tempdb                | SIMPLE                |
| model                 | FULL                  |
| msdb                  | SIMPLE                |
| Music                 | FULL                  |
| KrankyKranes          | FULL                  |
| WideWorldImporters    | SIMPLE                |
| World                 | FULL                  |
| PetHotel              | FULL                  |
| StereoSystems         | FULL                  |
| NarrowNationExporters | FULL                  |
| TestDB                | FULL                  |
+-----------------------+-----------------------+

I det här exemplet använder de flesta av mina databaser den fullständiga återställningsmodellen, men vissa använder den enkla återställningsmodellen.

master , tempdb och msdb databaser använder den enkla återställningsmodellen som standard. model databasen använder modellen för fullständig återställning, vilket innebär att alla nya databaser som skapas kommer att använda modellen för fullständig återställning som standard. Den här inställningen kan vara annorlunda på ditt system, beroende på vilken utgåva du använder och om den har ändrats eller inte.

Se Microsofts webbplats för mer information om återställningsmodeller.

Om du inte vill lista alla databaser kan du alltid använda en WHERE klausul för att begränsa den till bara en databas:

SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases
WHERE name = 'NarrowNationExporters';

Resultat:

+-----------------------+-----------------------+
| name                  | recovery_model_desc   |
|-----------------------+-----------------------|
| NarrowNationExporters | FULL                  |
+-----------------------+-----------------------+

Så här ändrar du återställningsmodellen.


  1. Hur man reparerar MySQL-databaser och tabeller

  2. Null Pointer Undantag vid anrop av getReadableDatabase()

  3. Strängsammansättning i MySQL

  4. Vad betyder exec sp_reset_connection i SQL Server Profiler?