내 SQL 데이터베이스에 어떤 복구 모델이 있는지 어떻게 알 수 있습니까? SQL 명령이 있습니까? 전체 복구 여부를 알고

데이터베이스의 복구 모델을 결정하기 위해 실행할 수있는 SQL 명령이 있습니까? 전체 복구 여부를 알고 싶습니다.



답변

그것을하는 방법의 다양성 …

SELECT D.recovery_model_desc FROM sys.databases D WHERE name = 'MyDB'

또는

SELECT name, D.recovery_model_desc FROM sys.databases D

또는

SELECT DATABASEPROPERTYEX('MyDB', 'Recovery')

답변

데이터베이스 파일 경로 및 복구 모델을 보여주기 위해 만든 스크립트는 다음과 같습니다.

SELECT 
  A.recovery_model_desc AS [Recovery Model], 
  A.name AS [Database Name], 
  C.physical_name AS [Filename], 
  CAST(C.size * 8 / 1024.00 AS DECIMAL(10,2)) AS [Size in MB], 
  C.state_desc AS [Database State]
FROM sys.databases A
INNER JOIN sys.master_files C ON A.database_id = C.database_id
ORDER BY [Recovery Model], [Database Name], [Filename]

답변

이 쿼리는 단순 복구 모델 만있는 데이터베이스 목록을 제공합니다.

SELECT name, DATABASEPROPERTYEX(name, 'Recovery') as Recovery_Model
FROM sys.databases
WHERE DATABASEPROPERTYEX(name, 'Recovery') = 'Simple'
ORDER BY name;