Condividi tramite


Eliminare funzioni definite dall'utente

È possibile eliminare funzioni definite dall'utente in SQL Server 2012 utilizzando SQL Server Management Studio o Transact-SQL.

Contenuto dell'argomento

  • Prima di iniziare:

    Limitazioni e restrizioni

    Sicurezza

  • Eliminare una funzione definita dall'utente tramite:

    SQL Server Management Studio

    Transact-SQL

Prima di iniziare

Limitazioni e restrizioni

  • Non è possibile eliminare la funzione se nel database sono presenti funzioni o viste Transact-SQL che fanno riferimento a questa funzione e che sono state create tramite SCHEMABINDING oppure se sono presenti colonne calcolate, vincoli CHECK o vincoli DEFAULT che fanno riferimento alla funzione.

  • Non è possibile eliminare la funzione se sono presenti colonne calcolate che fanno riferimento alla funzione e che sono state indicizzate.

Sicurezza

Autorizzazioni

È necessaria l'autorizzazione ALTER per lo schema a cui appartiene la funzione o l'autorizzazione CONTROL per la funzione.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per eliminare una funzione definita dall'utente

  1. Fare clic sul segno più accanto al database che contiene la funzione che si desidera modificare.

  2. Fare clic sul segno più accanto alla cartella Programmabilità.

  3. Fare clic sul segno più accanto alla cartella che contiene la funzione che si desidera modificare:

    • Funzione con valori di tabella

    • Funzione a valori scalari

    • Funzione di aggregazione

  4. Fare clic con il pulsante destro del mouse sulla funzione che si desidera eliminare e scegliere Elimina.

  5. Nella finestra di dialogo Elimina oggetto fare clic su OK.

    Nota importanteImportante

    Fare clic su Mostra dipendenze nella finestra di dialogo Elimina oggetto per aprire la finestra di dialogo Dipendenze di function_name. Verranno visualizzati tutti gli oggetti che dipendono dalla funzione e tutti gli oggetti da cui dipende la funzione.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di Transact-SQL

Per eliminare una funzione definita dall'utente

  1. In Esplora oggetti connettersi a un'istanza del Motore di database.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.

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

Per ulteriori informazioni, vedere DROP FUNCTION (Transact-SQL).

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]