ALTER FUNCTION (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengubah fungsi Transact-SQL atau CLR yang ada yang sebelumnya dibuat dengan menjalankan pernyataan CREATE FUNCTION, tanpa mengubah izin dan tanpa memengaruhi fungsi dependen, prosedur tersimpan, atau pemicu apa pun.

Konvensi sintaks transact-SQL

Sintaks

-- Transact-SQL Scalar Function Syntax    
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS return_data_type  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    BEGIN   
        function_body   
        RETURN scalar_expression  
    END  
[ ; ]
-- Transact-SQL Inline Table-Valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS TABLE  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    RETURN [ ( ] select_stmt [ ) ]  
[ ; ]  
-- Transact-SQL Multistatement Table-valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS @return_variable TABLE <table_type_definition>  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    BEGIN   
        function_body   
        RETURN  
    END  
[ ; ]  
-- Transact-SQL Function Clauses   
<function_option>::=   
{  
    [ ENCRYPTION ]  
  | [ SCHEMABINDING ]  
  | [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]  
  | [ EXECUTE_AS_Clause ]  
} 

<table_type_definition>:: =   
( { <column_definition> <column_constraint>   
  | <computed_column_definition> }   
    [ <table_constraint> ] [ ,...n ]  
)   
<column_definition>::=  
{  
    { column_name data_type }  
    [ [ DEFAULT constant_expression ]   
      [ COLLATE collation_name ] | [ ROWGUIDCOL ]  
    ]  
    | [ IDENTITY [ (seed , increment ) ] ]  
    [ <column_constraint> [ ...n ] ]   
}  

<column_constraint>::=   
{  
    [ NULL | NOT NULL ]   
    { PRIMARY KEY | UNIQUE }  
      [ CLUSTERED | NONCLUSTERED ]   
        [ WITH FILLFACTOR = fillfactor   
        | WITH ( < index_option > [ , ...n ] )  
      [ ON { filegroup | "default" } ]  
  | [ CHECK ( logical_expression ) ] [ ,...n ]  
}  
  
<computed_column_definition>::=  
column_name AS computed_column_expression   
  
<table_constraint>::=  
{   
    { PRIMARY KEY | UNIQUE }  
      [ CLUSTERED | NONCLUSTERED ]   
      ( column_name [ ASC | DESC ] [ ,...n ] )  
        [ WITH FILLFACTOR = fillfactor   
        | WITH ( <index_option> [ , ...n ] )  
  | [ CHECK ( logical_expression ) ] [ ,...n ]  
}  
  
<index_option>::=  
{   
    PAD_INDEX = { ON | OFF }   
  | FILLFACTOR = fillfactor   
  | IGNORE_DUP_KEY = { ON | OFF }  
  | STATISTICS_NORECOMPUTE = { ON | OFF }   
  | ALLOW_ROW_LOCKS = { ON | OFF }  
  | ALLOW_PAGE_LOCKS ={ ON | OFF }   
}  
-- CLR Scalar and Table-Valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( { @parameter_name [AS] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
)  
RETURNS { return_data_type | TABLE <clr_table_type_definition> }  
    [ WITH <clr_function_option> [ ,...n ] ]  
    [ AS ] EXTERNAL NAME <method_specifier>  
[ ; ]  
-- CLR Function Clauses
<method_specifier>::=  
    assembly_name.class_name.method_name  
 
  
<clr_function_option>::=  
}  
    [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]  
  | [ EXECUTE_AS_Clause ]  
}  
  
<clr_table_type_definition>::=   
( { column_name data_type } [ ,...n ] )  
  
-- Syntax for In-Memory OLTP: Natively compiled, scalar user-defined function  
ALTER FUNCTION [ schema_name. ] function_name    
 ( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type   
    [ NULL | NOT NULL ] [ = default ] }   
    [ ,...n ]   
  ]   
)   
RETURNS return_data_type  
    [ WITH <function_option> [ ,...n ] ]   
    [ AS ]   
    BEGIN ATOMIC WITH (set_option [ ,... n ])  
        function_body   
        RETURN scalar_expression  
    END  
    
<function_option>::=   
{ |  NATIVE_COMPILATION   
  |  SCHEMABINDING   
  | [ EXECUTE_AS_Clause ]   
  | [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]   
}  

Argumen

schema_name
Adalah nama skema tempat fungsi yang ditentukan pengguna berada.

function_name
Apakah fungsi yang ditentukan pengguna akan diubah.

Catatan

Tanda kurung diperlukan setelah nama fungsi meskipun parameter tidak ditentukan.

@parameter_name
Adalah parameter dalam fungsi yang ditentukan pengguna. Satu atau beberapa parameter dapat dideklarasikan.

Fungsi dapat memiliki maksimum 2.100 parameter. Nilai setiap parameter yang dideklarasikan harus disediakan oleh pengguna ketika fungsi dijalankan, kecuali default untuk parameter ditentukan.

Tentukan nama parameter dengan menggunakan tanda (@) sebagai karakter pertama. Nama parameter harus mematuhi aturan untuk pengidentifikasi. Parameter bersifat lokal untuk fungsi; nama parameter yang sama dapat digunakan dalam fungsi lain. Parameter hanya dapat menggantikan konstanta; mereka tidak dapat digunakan alih-alih nama tabel, nama kolom, atau nama objek database lainnya.

Catatan

ANSI_WARNINGS tidak dihormati saat meneruskan parameter dalam prosedur tersimpan, fungsi yang ditentukan pengguna, atau saat mendeklarasikan dan mengatur variabel dalam pernyataan batch. Misalnya, jika variabel didefinisikan sebagai karakter(3), lalu diatur ke nilai yang lebih besar dari tiga karakter, data dipotong ke ukuran yang ditentukan dan pernyataan INSERT atau UPDATE berhasil.

[ type_schema_name . ] parameter_data_type
Adalah jenis data parameter dan secara opsional, skema tempat data tersebut berada. Untuk fungsi Transact-SQL, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali jenis data tanda waktu. Untuk fungsi CLR, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali jenis data teks, ntext, gambar, dan tanda waktu. Kursor dan tabel jenis nonscalar tidak dapat ditentukan sebagai jenis data parameter dalam fungsi Transact-SQL atau CLR.

Jika type_schema_name tidak ditentukan, Mesin Database SQL Server mencari parameter_data_type dalam urutan berikut:

  • Skema yang berisi nama jenis data sistem SQL Server.

  • Skema default pengguna saat ini dalam database saat ini.

  • Skema dbo dalam database saat ini.

[ =default ]
Adalah nilai default untuk parameter . Jika nilai default ditentukan, fungsi dapat dijalankan tanpa menentukan nilai untuk parameter tersebut.

Catatan

Nilai parameter default dapat ditentukan untuk fungsi CLR kecuali untuk jenis data varchar(maks) dan varbinary(maks ).

Ketika parameter fungsi memiliki nilai default, kata kunci DEFAULT harus ditentukan saat memanggil fungsi untuk mengambil nilai default. Perilaku ini berbeda dari menggunakan parameter dengan nilai default dalam prosedur tersimpan di mana menghilangkan parameter juga menyiratkan nilai default.

return_data_type
Adalah nilai pengembalian dari fungsi skalar yang ditentukan pengguna. Untuk fungsi Transact-SQL, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali jenis data tanda waktu. Untuk fungsi CLR, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali jenis data teks, ntext, gambar, dan tanda waktu. Kursor dan tabel jenis nonskalar tidak dapat ditentukan sebagai jenis data pengembalian dalam fungsi Transact-SQL atau CLR.

function_body
Menentukan bahwa serangkaian pernyataan Transact-SQL, yang bersama-sama tidak menghasilkan efek samping seperti memodifikasi tabel, menentukan nilai fungsi. function_body hanya digunakan dalam fungsi skalar dan fungsi bernilai tabel multistatement.

Dalam fungsi skalar, function_body adalah serangkaian pernyataan Transact-SQL yang bersama-sama mengevaluasi ke nilai skalar.

Dalam fungsi bernilai tabel multistatement, function_body adalah serangkaian pernyataan Transact-SQL yang mengisi variabel pengembalian TABLE.

scalar_expression
Menentukan bahwa fungsi skalar mengembalikan nilai skalar.

TABLE
Menentukan bahwa nilai pengembalian fungsi bernilai tabel adalah tabel. Hanya konstanta dan @local_variables yang dapat diteruskan ke fungsi bernilai tabel.

Dalam fungsi bernilai tabel sebaris, nilai pengembalian TABLE ditentukan melalui satu pernyataan SELECT. Fungsi sebaris tidak memiliki variabel pengembalian terkait.

Dalam fungsi bernilai tabel multistatement, @return_variable adalah variabel TABLE yang digunakan untuk menyimpan dan mengakumulasi baris yang harus dikembalikan sebagai nilai fungsi. @ return_variable hanya dapat ditentukan untuk fungsi Transact-SQL dan bukan untuk fungsi CLR.

select-stmt
Adalah pernyataan SELECT tunggal yang menentukan nilai pengembalian fungsi bernilai tabel sebaris.

NAMA <EKSTERNAL method_specifier>assembly_name.class_name.method_name
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

Menentukan metode assembly untuk mengikat dengan fungsi . assembly_name harus cocok dengan rakitan yang ada di SQL Server dalam database saat ini dengan visibilitas aktif. class_name harus merupakan pengidentifikasi SQL Server yang valid dan harus ada sebagai kelas di rakitan. Jika kelas memiliki nama yang memenuhi syarat namespace yang menggunakan titik (.) untuk memisahkan bagian namespace, nama kelas harus dibatasi dengan menggunakan tanda kurung ([]) atau tanda kutip (""). method_name harus merupakan pengidentifikasi SQL Server yang valid dan harus ada sebagai metode statis di kelas yang ditentukan.

Catatan

Secara default, SQL Server tidak dapat menjalankan kode CLR. Anda dapat membuat, memodifikasi, dan menghilangkan objek database yang mereferensikan modul runtime bahasa umum; namun, Anda tidak dapat menjalankan referensi ini di SQL Server sampai Anda mengaktifkan opsi clr diaktifkan. Untuk mengaktifkan opsi , gunakan sp_configure.

Catatan

Opsi ini tidak tersedia dalam database mandiri.

<>table_type_definition( { <column_definition<>column_constraint | <>> computed_column_definition } [ <table_constraint> ] [ , ...n ])
Menentukan jenis data tabel untuk fungsi Transact-SQL. Deklarasi tabel menyertakan definisi kolom dan batasan kolom atau tabel.

<>clr_table_type_definition ( { column_name**data_type } [ ,...n ] )Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database (Pratinjau di beberapa wilayah).

Menentukan jenis data tabel untuk fungsi CLR. Deklarasi tabel hanya menyertakan nama kolom dan jenis data.

NULL|BUKAN NULL
Hanya didukung untuk fungsi yang dikompilasi secara asli dan ditentukan pengguna skalar. Untuk informasi selengkapnya, lihat Fungsi Yang Ditentukan Pengguna Skalar untuk OLTP Dalam Memori.

NATIVE_COMPILATION
Menunjukkan apakah fungsi yang ditentukan pengguna dikompilasi secara asli. Argumen ini diperlukan untuk fungsi yang dikompilasi secara asli dan ditentukan pengguna skalar.

Argumen NATIVE_COMPILATION diperlukan saat Anda MENGUBAH fungsi, dan hanya dapat digunakan, jika fungsi dibuat dengan argumen NATIVE_COMPILATION.

MULAI ATOM DENGAN
Hanya didukung untuk fungsi yang dikompilasi secara asli dan ditentukan pengguna skalar, dan diperlukan. Untuk informasi selengkapnya, lihat Blok Atomik.

SCHEMABINDING
Argumen SCHEMABINDING diperlukan untuk fungsi yang dikompilasi secara asli dan ditentukan pengguna skalar.

<>function_option::= dan <clr_function_option>::=

Menentukan fungsi akan memiliki satu atau beberapa opsi berikut.

ENKRIPSI
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

Menunjukkan bahwa Mesin Database mengenkripsi kolom tampilan katalog yang berisi teks pernyataan ALTER FUNCTION. Menggunakan ENKRIPSI mencegah fungsi diterbitkan sebagai bagian dari replikasi SQL Server. ENKRIPSI tidak dapat ditentukan untuk fungsi CLR.

SCHEMABINDING
Menentukan bahwa fungsi terikat ke objek database yang dirujuknya. Ketika SCHEMABINDING ditentukan, objek dasar tidak dapat dimodifikasi dengan cara yang akan memengaruhi definisi fungsi. Definisi fungsi itu sendiri harus terlebih dahulu dimodifikasi atau dihilangkan untuk menghapus dependensi pada objek yang akan dimodifikasi..

Pengikatan fungsi ke objek yang dirujuknya dihapus hanya ketika salah satu tindakan berikut terjadi:

  • Fungsi dihilangkan.

  • Fungsi ini dimodifikasi dengan menggunakan pernyataan ALTER dengan opsi SCHEMABINDING yang tidak ditentukan.

Untuk daftar kondisi yang harus dipenuhi sebelum fungsi dapat terikat skema, lihat CREATE FUNCTION (Transact-SQL).

MENGEMBALIKAN NULL PADA INPUT NULL | DIPANGGIL PADA INPUT NULL
Menentukan atribut OnNULLCall dari fungsi bernilai skalar. Jika tidak ditentukan, INPUT NULL CALLED ON disiratkan secara default. Ini berarti bahwa isi fungsi dijalankan bahkan jika NULL diteruskan sebagai argumen.

Jika RETURNS NULL ON NULL INPUT ditentukan dalam fungsi CLR, itu menunjukkan bahwa SQL Server dapat mengembalikan NULL ketika salah satu argumen yang diterimanya adalah NULL, tanpa benar-benar memanggil isi fungsi. Jika metode yang ditentukan dalam <method_specifier> sudah memiliki atribut kustom yang menunjukkan RETURNS NULL ON NULL INPUT, tetapi pernyataan ALTER FUNCTION menunjukkan CALLED ON NULL INPUT, pernyataan ALTER FUNCTION lebih diutamakan. Atribut OnNULLCall tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

JALANKAN SEBAGAI KLAUSUL
Menentukan konteks keamanan tempat fungsi yang ditentukan pengguna dijalankan. Oleh karena itu, Anda dapat mengontrol akun pengguna mana yang digunakan SQL Server untuk memvalidasi izin pada objek database apa pun yang dirujuk oleh fungsi.

Catatan

EXECUTE AS tidak dapat ditentukan untuk fungsi yang ditentukan pengguna sebaris.

Untuk informasi selengkapnya, lihat EXECUTE AS Clause (Transact-SQL).

<>column_definition ::=

Menentukan jenis data tabel. Deklarasi tabel mencakup definisi kolom dan batasan. Untuk fungsi CLR, hanya column_name dan data_type yang dapat ditentukan.

column_name
Adalah nama kolom dalam tabel. Nama kolom harus mematuhi aturan untuk pengidentifikasi dan harus unik dalam tabel. column_name dapat terdiri dari 1 hingga 128 karakter.

data_type
Menentukan jenis data kolom. Untuk fungsi Transact-SQL, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali tanda waktu. Untuk fungsi CLR, semua jenis data, termasuk jenis yang ditentukan pengguna CLR, diizinkan kecuali teks, ntext, gambar, karakter, varchar, varchar(maks), dan tanda waktu. Kursor jenis nonscalar tidak dapat ditentukan sebagai jenis data kolom dalam fungsi Transact-SQL atau CLR.

constant_expression DEFAULT
Menentukan nilai yang disediakan untuk kolom ketika nilai tidak disediakan secara eksplisit selama penyisipan. constant_expression adalah nilai fungsi konstanta, NULL, atau sistem. Definisi DEFAULT dapat diterapkan ke kolom apa pun kecuali yang memiliki properti IDENTITY. DEFAULT tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

MENYUSUN collation_name
Menentukan kolas untuk kolom. Jika tidak ditentukan, kolom diberi kolase default database. Nama kolase dapat berupa nama kolase Windows atau nama kolase SQL. Untuk daftar dan informasi selengkapnya, lihat Nama Kolase Windows (Transact-SQL) dan Nama Kolase SQL Server (Transact-SQL).

Klausa COLLATE dapat digunakan untuk mengubah kolase hanya kolom jenis data karakter, varchar, nchar, dan nvarchar .

COLLATE tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

ROWGUIDCOL
Menunjukkan bahwa kolom baru adalah kolom pengidentifikasi unik global baris. Hanya satu kolom pengidentifikasi unik per tabel yang dapat ditetapkan sebagai kolom ROWGUIDCOL. Properti ROWGUIDCOL hanya dapat ditetapkan ke kolom pengidentifikasi unik.

Properti ROWGUIDCOL tidak memberlakukan keunikan nilai yang disimpan dalam kolom. Ini juga tidak secara otomatis menghasilkan nilai untuk baris baru yang disisipkan ke dalam tabel. Untuk menghasilkan nilai unik untuk setiap kolom, gunakan fungsi NEWID pada pernyataan INSERT. Nilai default dapat ditentukan; namun, NEWID tidak dapat ditentukan sebagai default.

IDENTITY
Menunjukkan bahwa kolom baru adalah kolom identitas. Saat baris baru ditambahkan ke tabel, SQL Server menyediakan nilai unik dan bertahap untuk kolom tersebut. Kolom identitas biasanya digunakan bersama dengan batasan KUNCI PRIMER untuk berfungsi sebagai pengidentifikasi baris unik untuk tabel. Properti IDENTITY dapat ditetapkan ke kolom tinyint, smallint, int, bigint, decimal(p,0), atau numerik(p,0 ). Hanya satu kolom identitas yang dapat dibuat per tabel. Default terikat dan batasan DEFAULT tidak dapat digunakan dengan kolom identitas. Anda harus menentukan benih dan kenaikan atau tidak. Jika tidak ditentukan, defaultnya adalah (1,1).

IDENTITY tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

Benih
Adalah nilai bilangan bulat yang akan ditetapkan ke baris pertama dalam tabel.

Kenaikan
Adalah nilai bilangan bulat untuk ditambahkan ke nilai seed untuk baris berturut-turut dalam tabel.

<>column_constraint ::= dan < table_constraint>::=

Menentukan batasan untuk kolom atau tabel tertentu. Untuk fungsi CLR, satu-satunya jenis batasan yang diizinkan adalah NULL. Batasan bernama tidak diperbolehkan.

NULL | BUKAN NULL
Menentukan apakah nilai null diizinkan dalam kolom. NULL bukan batasan yang ketat tetapi dapat ditentukan sama seperti NOT NULL. NOT NULL tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

KUNCI PRIMER
Adalah batasan yang memberlakukan integritas entitas untuk kolom tertentu melalui indeks unik. Dalam fungsi yang ditentukan pengguna bernilai tabel, batasan KUNCI PRIMER hanya dapat dibuat pada satu kolom per tabel. PRIMARY KEY tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

UNIQUE
Adalah batasan yang menyediakan integritas entitas untuk kolom atau kolom tertentu melalui indeks unik. Tabel dapat memiliki beberapa batasan UNIK. UNIQUE tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

BERKLUSTER | NONCLUSTERED
Menunjukkan bahwa indeks berkluster atau non-kluster dibuat untuk batasan KUNCI PRIMER atau UNIK. Batasan KUNCI PRIMER menggunakan batasan CLUSTERED, dan UNIQUE menggunakan NONCLUSTERED.

CLUSTERED hanya dapat ditentukan untuk satu batasan. Jika CLUSTERED ditentukan untuk batasan UNIK dan batasan KUNCI PRIMER juga ditentukan, KUNCI PRIMER menggunakan NONCLUSTERED.

CLUSTERED dan NONCLUSTERED tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

CHECK
Adalah batasan yang memberlakukan integritas domain dengan membatasi kemungkinan nilai yang dapat dimasukkan ke dalam kolom atau kolom. Batasan CHECK tidak dapat ditentukan untuk fungsi bernilai tabel CLR.

logical_expression
Adalah ekspresi logis yang mengembalikan TRUE atau FALSE.

<>computed_column_definition::=

Menentukan kolom komputasi. Untuk informasi selengkapnya tentang kolom komputasi, lihat CREATE TABLE (Transact-SQL).

column_name
Adalah nama kolom komputasi.

computed_column_expression
Adalah ekspresi yang menentukan nilai kolom komputasi.

<>index_option::=

Menentukan opsi indeks untuk indeks KUNCI PRIMER atau UNIK. Untuk informasi selengkapnya tentang opsi indeks, lihat CREATE INDEX (Transact-SQL).

PAD_INDEX = { ON | NONAKTIF }
Menentukan padding indeks. Defaultnya adalah NONAKTIF.

FILLFACTOR = fillfactor
Menentukan persentase yang menunjukkan seberapa lengkap Mesin Database harus membuat tingkat daun setiap halaman indeks selama pembuatan atau perubahan indeks. fillfactor harus berupa nilai bilangan bulat dari 1 hingga 100. Defaultnya adalah 0.

IGNORE_DUP_KEY = { AKTIF | NONAKTIF }
Menentukan respons kesalahan saat operasi sisipkan mencoba menyisipkan nilai kunci duplikat ke dalam indeks unik. Opsi IGNORE_DUP_KEY hanya berlaku untuk menyisipkan operasi setelah indeks dibuat atau dibangun kembali. Defaultnya adalah NONAKTIF.

STATISTICS_NORECOMPUTE = { AKTIF | NONAKTIF }
Menentukan apakah statistik distribusi dikomputasi ulang. Defaultnya adalah NONAKTIF.

ALLOW_ROW_LOCKS = { AKTIF | NONAKTIF }
Menentukan apakah kunci baris diizinkan. Defaultnya adalah ON.

ALLOW_PAGE_LOCKS = { AKTIF | NONAKTIF }
Menentukan apakah kunci halaman diizinkan. Defaultnya adalah ON.

Keterangan

ALTER FUNCTION tidak dapat digunakan untuk mengubah fungsi bernilai skalar menjadi fungsi bernilai tabel, atau sebaliknya. Selain itu, ALTER FUNCTION tidak dapat digunakan untuk mengubah fungsi sebaris ke fungsi multistatement, atau sebaliknya. ALTER FUNCTION tidak dapat digunakan untuk mengubah fungsi Transact-SQL ke fungsi CLR atau sebaliknya.

Pernyataan Service Broker berikut tidak dapat disertakan dalam definisi fungsi yang ditentukan pengguna Transact-SQL:

  • MULAI PERCAKAPAN DIALOG
  • AKHIRI PERCAKAPAN
  • DAPATKAN GRUP PERCAKAPAN
  • PINDAHKAN PERCAKAPAN
  • TERIMA
  • KIRIM

Izin

Memerlukan izin ALTER pada fungsi atau pada skema. Jika fungsi menentukan jenis yang ditentukan pengguna, memerlukan izin EXECUTE pada jenis .

Lihat Juga

CREATE FUNCTION (Transact-SQL)
DROP FUNCTION (Transact-SQL)
Membuat Perubahan Skema pada Database Publikasi
EVENTDATA (Transact-SQL)