Share via


Excluir funções definidas pelo usuário

Aplica-se a:SQL ServerBanco de Dados SQL do Azure

Você pode excluir (remover) uma chave primária no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.

Limitações e restrições

  • Você não poderá excluir a função se houver funções Transact-SQL ou exibições no banco de dados que referenciem essa função e forem criadas usando SCHEMABINDING ou se houver colunas computadas, restrições CHECK ou DEFAULT que referenciem a função.

  • Você não poderá excluir a função se houver colunas computadas que façam referência a essa função e que tenham sido indexadas.

Permissões

Requer permissão ALTER no esquema ao qual a função pertence ou permissão CONTROL na função.

Usar o SQL Server Management Studio

  1. Clique no sinal de adição ao lado do banco de dados que contém a função que você deseja modificar.

  2. Clique no sinal de adição ao lado da pasta Programabilidade.

  3. Clique no sinal de adição ao lado da pasta que contém a função que você deseja modificar:

    • Table-valued Function
    • Função de valor escalar
    • Função de agregação
  4. Clique com o botão direito do mouse na função a ser excluída e selecione Excluir.

  5. Na caixa de diálogo Excluir Objeto, selecione OK.

    Selecione Mostrar Dependências na caixa de diálogo Excluir Objeto para abrir a caixa de diálogo nome_funçãoDependências. Isso mostrará todos os objetos que dependem da função e todos os objetos dos quais a função depende.

Usar o Transact-SQL

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar.

    O exemplo de código a seguir cria uma função definida pelo usuário:

    -- 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
    

    O exemplo de código a seguir exclui a função definida pelo usuário criada no exemplo anterior.

    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
    

Confira também