Anda dapat mengubah fungsi bernilai tabel (TVF) di SQL Server menggunakan ALTER FUNCTION
Sintaks T-SQL.
Anda cukup mengikuti ALTER FUNCTION
dengan definisi baru. Pada dasarnya ini seperti menggunakan CREATE FUNCTION
kecuali Anda mengganti CREATE
dengan ALTER
.
Contoh
Berikut ini contoh untuk didemonstrasikan:
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) MENGEMBALIKAN TABEL DENGAN SCHEMABINDINGASRETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats WHERE CatName =@CatName );GO
Jika fungsi ini belum ada, dan saya membuatnya untuk pertama kalinya, saya akan menggunakan kode berikut:
BUAT FUNGSI dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) MENGEMBALIKAN TABEL DENGAN SCHEMABINDINGASRETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats WHERE CatName =@CatName );GO
Sama persis, kecuali diawali dengan CREATE
bukannya ALTER
.
Lepaskan dan Buat Ulang
Cara lain untuk melakukannya adalah dengan menghapus fungsi dan membuatnya lagi:
FUNGSI DROP JIKA ADA udf_CatsByName_ITVF;FUNGSI GOCREATE dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) MENGEMBALIKAN TABEL DENGAN SCHEMABINDINGASRETURN ( SELECT CatName_Cats); GO SELECT CatName, Telepon DARIDalam hal ini, saya menggunakan sintaks DIE (Drop If Exists), yang berarti saya tidak akan mendapatkan kesalahan jika objek belum ada sebelum mencoba untuk menjatuhkannya.
TVF Inline vs TVF Multi-Pernyataan
Contoh di halaman ini menggunakan fungsi bernilai tabel sebaris. Konsep yang sama berlaku untuk TVF multi-pernyataan.
Lihat Membuat Fungsi Bernilai Tabel Sebaris dan Membuat Fungsi Bernilai Tabel Multi-Pernyataan untuk contoh yang lebih mendetail dari masing-masing fungsi.