Perbezaan Antara UDF dan prosedur tersimpan dalam SQL Perbezaan Antara

Anonim

UDF vs prosedur tersimpan dalam SQL

Persekitaran SQL datang dengan pelbagai komponen yang berfungsi dengannya untuk menyampaikan tugas-tugas yang berjaya. Terdapat fungsi didefinisikan pengguna dan prosedur tersimpan, yang lazim dalam persekitaran SQL. Ia adalah perbezaan antara kedua-dua yang disemak di bawah.

Perbezaan

Perbezaan pertama yang dilihat dengan fungsi pengguna yang ditentukan adalah bahawa ia diprogramkan dengan cara yang mesti mengembalikan nilai. Prosedur tersimpan mempunyai beberapa elaun sama ada untuk kembali atau tidak. Ini bergantung kepada sama ada atau tidak prosedur yang disimpan mempunyai nilai untuk kembali.

Perbezaan lain yang dilihat antara fungsi yang ditentukan oleh pengguna dan prosedur tersimpan mengenai pernyataan. Fungsi didefinisikan pengguna hanya membenarkan pernyataan pilih dibaca manakala pernyataan DML tidak dibenarkan. Sebaliknya, prosedur yang disimpan membolehkan penggunaan kedua-dua pernyataan pilih, serta pernyataan DML, yang juga boleh dikemas kini dan dimanipulasi.

Fungsi yang ditentukan pengguna hanya membenarkan input parameter tetapi tidak menyokong output parameter yang sama. Prosedur yang disimpan, sebaliknya, menyokong parameter input dan output. UDF juga tidak membenarkan penggunaan blok cuba-tangkapan. Prosedur yang tersimpan membolehkan penggunaan blok tangkapan cuba untuk pengendalian pengecualian.

UDF juga tidak membenarkan transaksi berlaku dalam fungsi. Fungsi ini tersedia dalam prosedur tersimpan yang membolehkan pengendalian transaksi. UDF juga tidak membenarkan penggunaan pembolehubah jadual dan juga tidak membenarkan jadual sementara. Prosedur yang disimpan, bagaimanapun, membolehkan penggunaan pembolehubah jadual serta jadual sementara di dalamnya.

Apabila dalam fungsi, UDF tidak membenarkan jadual yang disimpan akan dipanggil dari itu. Ini agak berbeza apabila datang kepada prosedur yang disimpan, yang membolehkan fungsi itu dipanggil tanpa batasan. Apabila dengan fungsi, UDF tidak membenarkan fungsi tersebut dipanggil dari pernyataan pilih. Prosedur yang disimpan juga memegang prosedur yang tidak boleh dipanggil dari mana / memilih dan mempunyai kenyataan. Exec atau Execute boleh, bagaimanapun, digunakan untuk memanggil atau bahkan melaksanakan prosedur yang disimpan. Akhir sekali tetapi UDF boleh digunakan untuk membuat klausa gabungan, mengeksploitasi set hasil. Dalam prosedur yang tersimpan, ini tidak mungkin kerana prosedur tidak dibenarkan dalam klausa gabungan. Ia juga penting untuk diperhatikan bahawa prosedur tersimpan membolehkan pulangan kepada sifar atau n nilai, sedangkan UDF hanya boleh kembali kepada satu nilai khusus dan pratetap yang dipratetap.

Ringkasan

Ia wajib untuk Fungsi untuk mengembalikan nilai sementara itu bukan untuk prosedur yang disimpan.

Pilih pernyataan yang diterima sahaja dalam UDF manakala pernyataan DML tidak diperlukan.

Prosedur tersimpan menerima apa-apa kenyataan serta penyataan DML.

UDF hanya membenarkan input dan bukan output.

Prosedur disimpan membolehkan kedua-dua input dan output.

Blok penangkapan tidak boleh digunakan dalam UDF tetapi boleh digunakan dalam prosedur tersimpan.

Tiada urus niaga yang dibenarkan dalam fungsi dalam UDF tetapi dalam prosedur yang disimpan mereka dibenarkan.

Hanya pemboleh ubah jadual boleh digunakan dalam UDF dan bukan jadual sementara.

Prosedur disimpan membolehkan kedua-dua pemboleh ubah jadual dan jadual sementara.

UDF tidak membenarkan prosedur tersimpan dipanggil dari fungsi sementara prosedur yang tersimpan membolehkan fungsi memanggil.

UDF digunakan untuk memasukkan fasal sementara prosedur tersimpan tidak boleh digunakan dalam klausa gabungan.

Prosedur tersimpan akan sentiasa membolehkan pulangan menjadi sifar. UDF, sebaliknya, mempunyai nilai yang mesti kembali ke titik yang telah ditetapkan.