Share via


ユーザー定義関数の削除

SQL Server 2012 では、SQL Server Management Studio または Transact-SQL を使用してユーザー定義関数を削除できます。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • ユーザー定義関数を削除するために使用するもの:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

  • データベース内に、この関数を参照し SCHEMABINDING を使って作成された Transact-SQL 関数またはビューがある場合、または、この関数を参照する計算列、CHECK 制約、DEFAULT 制約がある場合、関数は削除できません。

  • この関数を参照し、インデックスが作成された計算列がある場合、関数の削除はできません。

セキュリティ

権限

関数が属しているスキーマに対する ALTER 権限、または関数に対する CONTROL 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

ユーザー定義関数を削除するには

  1. 変更する関数を含むデータベースの横にあるプラス記号をクリックします。

  2. Programmability フォルダーの横にあるプラス記号をクリックします。

  3. 変更する次の関数を含むフォルダーの横にあるプラス記号をクリックします。

    • テーブル値関数

    • スカラー値関数

    • 集計関数

  4. 削除する関数を右クリックして、[削除] をクリックします。

  5. [オブジェクトの削除] ダイアログ ボックスで [OK] をクリックします。

    重要な注意事項重要

    [オブジェクトの削除] ダイアログ ボックスの [依存関係の表示] をクリックして [function_name の依存関係] ダイアログ ボックスを開きます。 関数に依存するすべてのオブジェクトと、関数が依存するすべてのオブジェクトが表示されます。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

ユーザー定義関数を削除するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    -- creates function called “Sales.ufn_SalesByStore”
    USE AdventureWorks2012;
    GO
    CREATE FUNCTION Sales.ufn_SalesByStore (@storeid int)
    RETURNS TABLE
    AS
    RETURN 
    (
        SELECT P.ProductID, P.Name, SUM(SD.LineTotal) AS 'Total'
        FROM Production.Product AS P 
        JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID
        JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID
        JOIN Sales.Customer AS C ON SH.CustomerID = C.CustomerID
        WHERE C.StoreID = @storeid
        GROUP BY P.ProductID, P.Name
    );
    GO
    
    USE AdventureWorks2012;
    GO
    -- determines if function exists in database
    IF OBJECT_ID (N'Sales.fn_SalesByStore', N'IF') IS NOT NULL
    -- deletes function
        DROP FUNCTION Sales.fn_SalesByStore;
    GO
    

詳細については、「DROP FUNCTION (Transact-SQL)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]