ユーザー定義関数の削除
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 の使用
ユーザー定義関数を削除するには
変更する関数を含むデータベースの横にあるプラス記号をクリックします。
Programmability フォルダーの横にあるプラス記号をクリックします。
変更する次の関数を含むフォルダーの横にあるプラス記号をクリックします。
テーブル値関数
スカラー値関数
集計関数
削除する関数を右クリックして、[削除] をクリックします。
[オブジェクトの削除] ダイアログ ボックスで [OK] をクリックします。
重要 [オブジェクトの削除] ダイアログ ボックスの [依存関係の表示] をクリックして [function_name の依存関係] ダイアログ ボックスを開きます。 関数に依存するすべてのオブジェクトと、関数が依存するすべてのオブジェクトが表示されます。
[Top]
Transact-SQL の使用
ユーザー定義関数を削除するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。
-- 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]