2017-08-18 61 views
4

我正在編寫一個用於執行多個數據庫操作的工具。
但該工具只能與一個特定的數據庫一起使用。如何識別數據庫被移動到另一個服務器/實例時

現在我正在尋找一種方法,以安全地識別數據庫,該工具已連接到。

首先,我想過檢查一個像SERVERNAME\INSTANCE#Database這樣的字符串。
此外,我發現this問題的解決方案是使用GUID,但如果在另一臺服務器上恢復數據庫此GUID更改。

即使將數據庫移動到其他服務器或實例,或數據庫名稱更改,也應該識別數據庫。

有沒有可靠的方法來實現這一目標?

+0

如何創建一個表並閱讀該信息,假設沒有人更改表格內容 – TheGameiswar

+0

可能是重複或至少與https://stackoverflow.com/questions/2957220/is-there-a-way- in-sql-server-to-unique-identify-a-database – Mithrandir

+0

@TheGameiswar我之前也想過這個。但它應該是安全的操縱。 – MatSnow

回答

1

您可能可以通過extended property實現此目的。

要創建:

exec sp_addextendedproperty @name = 'dbUniqueIdentifier' @value = 'ABCD1234' 

要確認:

select value from sys.extended_properties where name = 'dbUniqueIdentifier' 

在我的組織,我們使用擴展屬性,以確定其建立和變更集數據庫架構是從哪裏來的。這些屬性在備份/恢復/遷移中存在。

相關問題