刪除使用者定義函數
您可以透過使用 SQL Server Management Studio 或 Transact-SQL,刪除 (卸除) SQL Server 2012 中的使用者定義函數。
本主題內容
開始之前:
限制事項
安全性
若要使用下列項目刪除使用者定義函數:
SQL Server Management Studio
Transact-SQL
開始之前
限制事項
如果資料庫中有 Transact-SQL 函數或檢視參考這個函數,並且是利用 SCHEMABINDING 加以建立;或者如果有計算資料行、CHECK 條件約束或 DEFAULT 條件約束參考這個函數,就無法刪除函數。
如果有計算資料行參考這個函數,而且已經產生索引,就無法刪除函數。
安全性
權限
需要函數所屬結構描述的 ALTER 權限,或函數的 CONTROL 權限。
[Top]
使用 SQL Server Management Studio
若要刪除使用者定義函數
按一下包含要修改之函數的資料庫旁邊的加號。
按一下 [可程式性] 資料夾旁的加號。
按一下包含要修改之函數的資料夾旁邊的加號:
資料表值函式
純量值函式
彙總函式
以滑鼠右鍵按一下您想刪除的函數,然後選取 [刪除]。
在 [刪除物件] 對話方塊中,按一下 [確定]。
重要事項
在 [刪除物件] 對話方塊中按一下 [顯示相依性],開啟 [function_name 相依性] 對話方塊。 這就會顯示相依於函數的所有物件以及函數所相依的所有物件。
[Top]
使用 Transact-SQL
若要刪除使用者定義函數
在 [物件總管] 中,連接到 Database Engine 的執行個體。
在標準列上,按一下 [新增查詢]。
將下列範例複製並貼到查詢視窗中,然後按一下 [執行]。
-- 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]