共用方式為


刪除使用者定義函數

您可以透過使用 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

若要刪除使用者定義函數

  1. 按一下包含要修改之函數的資料庫旁邊的加號。

  2. 按一下 [可程式性] 資料夾旁的加號。

  3. 按一下包含要修改之函數的資料夾旁邊的加號:

    • 資料表值函式

    • 純量值函式

    • 彙總函式

  4. 以滑鼠右鍵按一下您想刪除的函數,然後選取 [刪除]

  5. [刪除物件] 對話方塊中,按一下 [確定]

    重要事項重要事項

    [刪除物件] 對話方塊中按一下 [顯示相依性],開啟 [function_name 相依性] 對話方塊。 這就會顯示相依於函數的所有物件以及函數所相依的所有物件。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 Transact-SQL

若要刪除使用者定義函數

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  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]