sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du gendannelsesmodellen for en database i SQL Server ved hjælp af T-SQL

I SQL Server er en gendannelsesmodel en databaseegenskab, der styrer, hvordan transaktioner logges, om transaktionsloggen kræver (og tillader) sikkerhedskopiering, og hvilke typer gendannelsesoperationer, der er tilgængelige. Databaser kan bruge en af ​​følgende tre gendannelsesmodeller:enkel, fuld og bulk-logget.

Du kan forespørge i sys.databases katalogvisning for at få en liste over databaser og deres gendannelsesmodeller.

Eksempel

Her er et eksempel til demonstration:

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 dette eksempel bruger de fleste af mine databaser den fulde gendannelsesmodel, men nogle bruger den simple gendannelsesmodel.

master , tempdb og msdb databaser bruger som standard den simple gendannelsesmodel. model databasen bruger den fulde gendannelsesmodel, hvilket betyder, at enhver ny oprettet database vil bruge den fulde gendannelsesmodel som standard. Denne indstilling kan være anderledes på dit system, afhængigt af hvilken udgave du bruger, og om den er blevet ændret eller ej.

Se Microsofts websted for at få flere oplysninger om gendannelsesmodeller.

Hvis du ikke ønsker at vise alle databaser, kan du altid bruge en WHERE klausul for at indsnævre den til kun én database:

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

Resultat:

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

Sådan ændrer du gendannelsesmodellen.


  1. Hvordan returnerer jeg flere resultatsæt med SqlCommand?

  2. Kan du ikke lide databaseudløsere? Du ved bare ikke, hvordan du arbejder med dem!

  3. ORA-01652:ude af stand til at forlænge temp-segmentet med 128 i tablespace SYSTEM:Hvordan forlænges?

  4. ODP.NET Oracle.ManagedDataAccess forårsager ORA-12537 netværkssession slutningen af ​​filen