Di SQL Server, dimungkinkan untuk menggunakan fungsi bernilai tabel (TVF) untuk menghapus data dari tabel yang mendasari kueri TVF.
Untuk menghapus data tabel melalui TVF, cukup gunakan DELETE
T-SQL yang sama sintaks yang akan Anda gunakan jika menghapus baris dari tabel secara langsung.
Contoh
Berikut contoh cepat untuk ditunjukkan.
Fungsi
Berikut adalah fungsi bernilai tabel sebaris cepat yang memilih data dasar dari sebuah tabel.
CREATE FUNCTION dbo.udf_Cats_ITVF() RETURNS TABLE AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats ); GO
Fungsi ini memilih semua baris dari sebuah tabel.
Saya juga dapat menggunakan fungsi ini untuk menghapus baris dari tabel itu.
Pilih Data dengan Fungsi
Inilah cara kami biasanya memanggil fungsi dengan SELECT
penyataan. Ini memungkinkan kami untuk melihat data saat ini di tabel yang mendasarinya.
SELECT * FROM udf_Cats_ITVF();
Hasil:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | | 5 | Scratchy | 1111111111 | +---------+-----------+------------+
Jadi ada lima baris.
Ayo hapus Scratchy.
Menghapus Baris melalui Fungsi
Sekarang mari kita gunakan TVF untuk menghapus satu baris.
DELETE FROM udf_Cats_ITVF() WHERE CatId = 5; SELECT * FROM udf_Cats_ITVF();
Hasil:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | +---------+-----------+------------+
Jadi saya berhasil menghapus Scratchy menggunakan fungsi nilai tabel sebaris.