SPが依存している列とテーブルを見つけるために使用できますsys.sql_dependencies
(SPで実行しない場合に役立ちますSELECT *
)。これにより、少なくとも次の候補の一覧を取得できます。
referenced_major_id == the OBJECT_ID of the table
referenced_minor_id == the column id: COLUMNPROPERTY(referenced_major_id,
COLUMN_NAME,
'ColumnId')
sp_refreshsqlmodule
それが機能するためには、依存関係が最新であることを確認するために使用する必要がある場合があります。つまり、ビューを変更する場合は、sp_refreshsqlmodule
スキーマにバインドされていない各モジュールで変更する必要があります (明らかに、スキーマにバインドされたモジュールでは、そもそも基になる変更を許可していませんが、スキーマを呼び出すとエラーが発生しますsp_refreshsqlmodule
-そのビューに依存するバインドされたオブジェクト)。sp_refreshsqlmodule
これらのオブジェクトを呼び出すことで、これを自動化できます。
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.'
+ QUOTENAME(ROUTINE_NAME)),
N'IsSchemaBound') IS NULL
OR OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.'
+ QUOTENAME(ROUTINE_NAME)),
N'IsSchemaBound') = 0