1. ホーム
  2. tsql

[解決済み] 関数がすでに存在する場合、その関数を削除するにはどうすればよいですか?

2022-11-13 04:04:37

質問

簡単なことなのでしょうが、関数を作成する前に、すでに存在しているかどうかを確認するにはどうしたらよいのでしょうか。それが存在する場合、私はそれを削除して再作成したいです。

どのように解決するのですか?

IF EXISTS (
    SELECT * FROM sysobjects WHERE id = object_id(N'function_name') 
    AND xtype IN (N'FN', N'IF', N'TF')
)
    DROP FUNCTION function_name
GO

sys* テーブルを避けたい場合は、代わりに ( ここで の例A)。

IF object_id(N'function_name', N'FN') IS NOT NULL
    DROP FUNCTION function_name
GO

削除しようとする関数の種類(上のSQLではFN、IF、TFで示されています)を主に捕らえます。

  • FN = スカラー関数
  • IF = インラインテーブル関数
  • TF = テーブルファンクション