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

ユーザー関数 t-SQL のメタデータの更新

    gbn の回答 が最適ですが、SCHEMABINDING を使用している場合、最初に SCHEMABINDING を削除してからモジュールを再作成するときにそれを置き換えないと、基本的な変更を行うことができないことがよくあります。オブジェクトがデータベース外のオブジェクトを参照している場合、SCHEMABINDING は使用できません。

    この難しさがあまりにも大きく、SCHEMABINDING を使用したくない、または使用できない場合は、 sp_refreshsqlmodule 実際に使用する前に SQL モジュールのエラーをチェックするために実行するある種の通常のプロセス (スキーマにバインドされていないビュー、UDF、ストアド プロシージャなどで実行できます) はあなたの友人です。

    両方の手法を一緒に使用できます。スキーマバインドされたオブジェクトに対して 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 )  

    1. C#、MySQL-コマンド実行中に致命的なエラーが発生しました-他の解決策を確認しました、私が見逃しているもの

    2. PostgreSQLDBからのコメントの取得

    3. MySQLでINDEXとKEYを使用することの違いは何ですか?

    4. Androidからmysqlサーバーにデータを送信する方法は?