誰もがすべてのデータベースに存在する一意の識別子について考えてもらえますか?SQL Serverデータベースのユニークな識別子
ローカルにリストアされた数百のデータベースがあり、すべてが同じ空白のテンプレートから開始されています。このリストアされたデータベースのリストは絶えず変化しており、database_guid
(sys.database_recovery_status
)を使用してデータベースの同一性を検証することはできません。
私は、データベース開発の初期段階で使用されたGUIDをハッシュすることでデータベースを識別できますが、これは問題の一部のみを処理しますが、同じデータベースの2つのバージョン?
例:Live to Testが実行されますが、GUIDは同じですが、正しい命名規則に準拠している人に頼らずに、LiveとTestのどちらかを一意に識別する方法が必要です。
「データベースID」の定義は、エンジンが追跡できるものと一致しないため、何かを自分で構築する必要があります。特に、2つのデータベースがまったく同じデータベース(ファイルのチェックサムだけ)であるかどうか、また同じデータベースのインスタンスを[LSN]([https://technet.microsoft.com/library])で時系列的に区別できるかどうかは簡単に言えます/ ms190729)、SQL Serverは「ライブ」と「テスト」の意味を理解することはできません。偶発的に事故を防止する最善の方法は、ファイアウォールを稼動させてテストすることです。汚染は不可能です。 –
ありがとう、解決策は、パラメータを取ったスクリプトから復元し、それをLive、Test、Trainとして検証し、それに基づいてアクションを実行することでした。私はユーザーの行動に頼らざるを得ませんでしたが、やむを得ないことでした。 –