sql >> データベース >  >> RDS >> Sqlserver

SQL Serverでsp_dependsを使用しないでください(非推奨)

    SQL Serverには、sp_dependsと呼ばれるシステムストアドプロシージャがあります 現在のデータベース内のオブジェクト間の依存関係に関する情報を返します。

    Microsoftは、このストアドプロシージャを非推奨としてマークしました。これは、このストアドプロシージャがメンテナンスモードであり、SQLServerの将来のバージョンで削除される可能性があることを意味します。 sp_dependsの使用は避けてください 新しい開発作業では、現在それを使用しているアプリケーションを変更して、sys.dm_sql_referencing_entities()のいずれかを使用する必要があります。 またはsys.dm_sql_referenced_entities() 代わりに(参照が必要かどうかによって異なります エンティティ、または参照 返されるエンティティ。

    sys.dm_sql_referencing_entities() システム動的管理関数は、指定されたエンティティに依存するエンティティのリストを返します。具体的には、別のユーザー定義エンティティを名前で参照する現在のデータベース内のすべてのエンティティを返します。

    sys.dm_sql_referenced_entities() 一方、システム動的管理機能は、特定のエンティティが依存するすべてのユーザー定義エンティティのリストを返します。具体的には、特定のエンティティの定義で、名前で参照されるすべてのユーザー定義エンティティを返します。この機能は、クロスデータベースおよびクロスサーバーエンティティに使用できます。

    現在sp_dependsを使用しているかどうかわからない?

    システムがsp_dependsを使用しているかどうかわからない場合 、いつでもsys.dm_os_performance_countersを使用できます 見つけるために。このシステム動的管理ビューを使用して、SQLServerの起動以降に廃止された各機能が検出された回数のカウントを返すことができます。詳細と例については、SQLServerインスタンスでまだ使用されている廃止された機能を見つけるための最速の方法を確認してください。

    より複雑な方法は、拡張イベントを使用して、廃止された機能の各使用法に関する追加情報を含むログファイルを作成することです。たとえば、廃止された機能を含むSQLステートメント、それを実行したユーザー、実行された時刻、それがあったデータベースなどの情報を記録できます。その方法の詳細な手順については、拡張イベントを使用してSQLServerインスタンスで使用されている非推奨の機能をログに記録するを参照してください。

    Microsoftドキュメントリファレンス

    • sp_depends
    • sys.dm_sql_referencing_entities
    • sys.dm_sql_referenced_entities
    • SQLServer2017で廃止されたデータベースエンジン機能
    • SQL Server 2016で廃止されたデータベースエンジン機能(2017年のリストと同じ)

    1. ストアドプロシージャとは何ですか?

    2. Oracle®からのSalesforceの更新

    3. Tablefuncを使用して複数の列をピボットする

    4. 初心者向けのSQLORDERBY句