Làm cách nào để tìm FamilyGUID của cơ sở dữ liệu cũ


9

Khi thực hiện một RESTORElệnh, tôi hiểu rằng SQL Server đảm bảo rằng cơ sở dữ liệu hiện tại không bị ghi đè bởi cơ sở dữ liệu khác. Kiểm tra này có thể được bỏ qua bằng cách sử dụng REPLACE.

Tôi hiểu rằng SQL Server sử dụng tệp sao lưu FamilyGUIDđể xác định xem cơ sở dữ liệu đang được khôi phục có giống với cơ sở dữ liệu bị ghi đè hay không. Điều này có đúng không?

Tôi hiểu rằng FamilyGUIDtệp sao lưu có thể được xác định bằng cách sử dụng

RESTORE headeronly FROM DISK = N'Q:\MyBackup.bak'

Nhưng làm thế nào tôi có thể tìm thấy FamilyGUID của cơ sở dữ liệu đang bị ghi đè?

Câu trả lời:


9

Bạn có thể sử dụng chế độ xem danh mục - sys.database_recovery_status

SELECT DB_NAME(database_id) as DatabaseName, database_guid, family_guid
FROM master.sys.database_recovery_status

Bạn có thể làm cho quá trình khôi phục của mình tinh vi hơn bằng cách so sánh family_guidtệp sao lưu và cơ sở dữ liệu sẽ được khôi phục.

Chỉ cần đổ thông tin RESTORE headeronlyvào bảng tạm thời và sử dụng truy vấn trên để so sánh. Nếu chúng khác nhau thì có vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.