sql >> Database >  >> RDS >> Sqlserver

Het herstelmodel van een database in SQL Server ophalen met T-SQL

In SQL Server is een herstelmodel een database-eigenschap die bepaalt hoe transacties worden vastgelegd, of het transactielogboek een back-up vereist (en toestaat) en welke soorten herstelbewerkingen beschikbaar zijn. Databases kunnen een van de volgende drie herstelmodellen gebruiken:eenvoudig, volledig en in bulk gelogd.

U kunt de sys.databases . opvragen catalogusweergave om een ​​lijst met databases en hun herstelmodellen te krijgen.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases;

Resultaat:

+-----------------------+-----------------------+
| 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                  |
+-----------------------+-----------------------+

In dit voorbeeld gebruiken de meeste van mijn databases het volledige herstelmodel, maar sommige gebruiken het eenvoudige herstelmodel.

De master , tempdb , en msdb databases gebruiken standaard het eenvoudige herstelmodel. Het model database gebruikt het volledige herstelmodel, wat betekent dat alle nieuwe databases die worden gemaakt standaard het volledige herstelmodel gebruiken. Deze instelling kan op uw systeem anders zijn, afhankelijk van de editie die u gebruikt en of deze al dan niet is gewijzigd.

Zie de Microsoft-website voor meer informatie over herstelmodellen.

Als u niet alle databases wilt weergeven, kunt u altijd een WHERE . gebruiken clausule om het te beperken tot slechts één database:

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

Resultaat:

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

Hier leest u hoe u het herstelmodel kunt wijzigen.


  1. Hoe verander ik SQL Server 2005 in hoofdlettergevoelig?

  2. Voeg CreatedBy en CreatedOn in alle ontbrekende gegevenstabellen in SQL

  3. SQL Server Bulk Insert – Deel 1

  4. Alleen een tabel maken als deze niet in SQLite bestaat