Megosztás a következőn keresztül:


Felhasználó által definiált függvények törlése

A következőkre vonatkozik:SQL ServerAzure SQL Database

A felhasználó által definiált függvényeket az SQL Server Management Studio vagy a Transact-SQL használatával törölheti (elvetheti).

Korlátozások és korlátozások

  • Nem fogja tudni törölni a függvényt, ha az adatbázisban vannak olyan Transact-SQL függvények vagy nézetek, amelyek hivatkoznak erre a függvényre, és a SCHEMABINDING használatával lettek létrehozva, vagy ha a függvényre hivatkozó számított oszlopok, CHECK korlátozások vagy ALAPÉRTELMEZETT kényszerek vannak.

  • Nem fogja tudni törölni a függvényt, ha vannak olyan számított oszlopok, amelyek hivatkoznak erre a függvényre, és indexelték őket.

Engedélyek

Az ALTER engedélyre van szükség azon a sémán, amelyhez a függvény tartozik, vagy a CONTROL engedélyre magán a függvényen.

Az SQL Server Management Studio használata

  1. Válassza ki a módosítani kívánt függvényt tartalmazó adatbázis melletti pluszjelet.

  2. Válassza a Programozhatóság mappa melletti pluszjelet.

  3. Válassza ki a módosítani kívánt függvényt tartalmazó mappa melletti pluszjelet:

    • Táblaértékű függvény
    • Skaláris értékű függvény
    • Összesítő függvény
  4. Kattintson a jobb gombbal a törölni kívánt függvényre, és válassza a Törléslehetőséget.

  5. Az Objektum törlése párbeszédpanelen válassza OKlehetőséget.

    Válassza az Függőségek megjelenítése lehetőséget az Objektum törlése párbeszédpanelen a function_nameFüggőségek párbeszédpanel megnyitásához. Ez megjeleníti az összes objektumot, amely a függvénytől függ, és az összes objektumot, amelytől a függvény függ.

Transact-SQL használata

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    A következő kódminta létrehoz egy felhasználó által definiált függvényt:

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

    Az alábbi kódminta törli az előző példában létrehozott felhasználó által definiált függvényt.

    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
    

Lásd még: