사용자 정의 함수 삭제

적용 대상:SQL ServerAzure SQL Database

SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 사용자 정의 함수를 삭제(삭제)할 수 있습니다.

제한 사항

  • 데이터베이스에 이 함수를 참조하고 SCHEMABINDING을 사용하여 만든 Transact-SQL 함수 또는 뷰가 있거나 함수를 참조하는 계산 열, CHECK 제약 조건 또는 DEFAULT 제약 조건이 있는 경우 함수를 삭제할 수 없습니다.

  • 이 함수를 참조하고 인덱싱된 계산 열이 있는 경우 함수를 삭제할 수 없습니다.

사용 권한

함수가 속한 스키마에 대한 ALTER 권한 또는 함수에 대한 CONTROL 권한이 필요합니다.

SQL Server Management Studio 사용

  1. 수정하려는 함수가 포함된 데이터베이스 옆에 있는 더하기 기호를 선택합니다.

  2. 프로그래밍 기능 폴더 옆에 있는 더하기 기호를 선택합니다.

  3. 수정하려는 함수가 포함된 폴더 옆에 있는 더하기 기호를 선택합니다.

    • 테이블 반환 함수
    • 스칼라 반환 함수
    • Aggregate 함수
  4. 삭제할 함수를 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.

  5. 개체 삭제 대화 상자에서 확인을 선택합니다.

    개체 삭제 대화 상자에서 종속성 표시를 선택하여 function_name종속성 대화 상자를 엽니다. 그러면 함수에 의존하는 모든 개체와 함수가 의존하는 모든 개체가 표시됩니다.

Transact-SQL 사용

  1. 개체 탐색기에서 데이터베이스 엔진의 인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다.

    다음 코드 샘플에서는 사용자 정의 함수를 만듭니다.

    -- creates function called "Sales.ufn_SalesByStore"
    USE AdventureWorks2022;
    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 AdventureWorks2022;
    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
    

참고 항목