次の方法でデータベースを保護したいと考えています。
- テーブルは削除や名前変更から保護する必要があります
- 列は削除や名前変更から保護する必要があります
- テーブルと列の追加は許可されています
これをコンテキストに入れるvocabularies
と、中央のマスター コピーとなるデータベース (ルックアップ テーブル) であり、他のデータベース (同じサーバー上、および将来的には他のサーバー (非 SQL サーバー システムでも)) に配布されます。
テーブルと列の追加は、クライアント データベースが引き続き動作し、表示されたときに更新を取得できる方法で処理できます。一方、テーブルと列の削除は、別の組織化された方法で処理する必要があります。
テーブルと列のドロップをロックする DDL トリガーを作成しましたが、これは簡単な部分でした。
残念ながら、テーブルと列の名前変更はプロシージャによって処理されているようで、sp_rename
このプロシージャは次の構成を使用します。
EXEC %%Object(ID = @objid).SetName(Name = @newname)
これは、DDL トリガーによって検出されません。テーブルと列の名前が変更されていないことを確認する方法はありますか?