사용자 정의 함수 삭제Delete User-defined Functions

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 SQL Server 2017SQL Server 2017에서 사용자 정의 함수를 삭제할 수 있습니다. You can delete (drop) user-defined functions in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

제한 사항Limitations and Restrictions

  • 데이터베이스에 이 함수를 참조하고 SCHEMABINDING을 사용하여 만든 Transact-SQL 함수나 뷰가 있는 경우 또는 해당 함수를 참조하는 계산 열, CHECK 제약 조건 또는 DEFAULT 제약 조건이 있는 경우 함수를 삭제할 수 없습니다.You will not be able to delete the function if there are Transact-SQL functions or views in the database that reference this function and were created by using SCHEMABINDING, or if there are computed columns, CHECK constraints, or DEFAULT constraints that reference the function.

  • 이 함수를 참조하고 인덱싱된 계산 열이 있는 경우 함수를 삭제할 수 없습니다.You will not be able to delete the function if there are computed columns that reference this function and have been indexed.

보안Security

사용 권한Permissions

함수가 속한 스키마에 대한 ALTER 권한 또는 함수에 대한 CONTROL 권한이 필요합니다.Requires ALTER permission on the schema to which the function belongs, or CONTROL permission on the function.

SQL Server Management Studio 사용Using SQL Server Management Studio

사용자 정의 함수를 삭제하려면To delete a user-defined function

  1. 수정할 함수가 포함된 데이터베이스 옆의 더하기 기호를 클릭합니다.Click on the plus sign next to the database that contains the function you wish to modify.

  2. 프로그래밍 기능 폴더 옆의 더하기 기호를 클릭합니다.Click on the plus sign next to the Programmability folder.

  3. 수정할 함수가 포함된 폴더 옆의 더하기 기호를 클릭합니다.Click the plus sign next to the folder that contains the function you wish to modify:

    • 테이블 반환 함수Table-valued Function

    • 스칼라 반환 함수Scalar-valued Function

    • Aggregate 함수Aggregate Function

  4. 삭제할 함수를 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.Right-click the function you want to delete and select Delete.

  5. 개체 삭제 대화 상자에서 확인을 클릭합니다.In the Delete Object dialog box, click OK.

    중요

    개체 삭제 대화 상자에서 종속성 표시 를 클릭하여 function_name종속성 대화 상자를 엽니다.Click Show Dependencies in the Delete Object dialog box to open the function_nameDependencies dialog box. 이 대화 상자에는 해당 함수에 종속된 모든 개체와 해당 함수가 종속된 모든 개체가 표시됩니다.This will show all of the objects that depend on the function and all of the objects on which the function depends.

Transact-SQL 사용Using Transact-SQL

사용자 정의 함수를 삭제하려면To delete a user-defined function

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    -- 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)을 참조하세요.For more information, see DROP FUNCTION (Transact-SQL).