Menghapus fungsi yang ditentukan pengguna

Berlaku untuk:SQL ServerAzure SQL Database

Anda dapat menghapus (menghilangkan) fungsi yang ditentukan pengguna di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Pembatasan dan batasan

  • Anda tidak akan dapat menghapus fungsi jika ada fungsi atau tampilan Transact-SQL dalam database yang mereferensikan fungsi ini dan dibuat dengan menggunakan SCHEMABINDING, atau jika ada kolom komputasi, batasan CHECK, atau batasan DEFAULT yang mereferensikan fungsi.

  • Anda tidak akan dapat menghapus fungsi jika ada kolom komputasi yang mereferensikan fungsi ini dan telah diindeks.

Izin

Memerlukan izin ALTER pada skema tempat fungsi berada, atau izin CONTROL pada fungsi.

Menggunakan SQL Server Management Studio

  1. Pilih tanda plus di samping database yang berisi fungsi yang ingin Anda ubah.

  2. Pilih tanda plus di samping folder Programmability .

  3. Pilih tanda plus di samping folder yang berisi fungsi yang ingin Anda ubah:

    • Fungsi bernilai tabel
    • Fungsi bernilai skalar
    • Fungsi Agregat
  4. Klik kanan fungsi yang ingin Anda hapus dan pilih Hapus.

  5. Dalam kotak dialog Hapus Objek , pilih OK.

    Pilih Perlihatkan Dependensi dalam kotak dialog Hapus Objek untuk membuka kotak dialog dependensi function_name. Ini akan menunjukkan semua objek yang bergantung pada fungsi dan semua objek yang bergantung pada fungsi.

Menggunakan Transact-SQL

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.

    Sampel kode berikut membuat fungsi yang ditentukan pengguna:

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

    Sampel kode berikut menghapus fungsi yang ditentukan pengguna yang dibuat dalam contoh sebelumnya.

    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
    

Baca juga