SQL Server 2005 memiliki tampilan sys.XXX yang bagus pada katalog sistem yang sering saya gunakan.
Apa yang membuat saya tersandung: mengapa ada tampilan "sys.procedures" untuk melihat info tentang prosedur tersimpan Anda, tetapi tidak ada tampilan "sys.functions" untuk melihat hal yang sama untuk fungsi yang Anda simpan?
Apakah tidak ada yang menggunakan fungsi tersimpan? Saya menemukan mereka sangat berguna untuk misalnya kolom yang dihitung dan semacamnya!
Apakah ada alasan tertentu mengapa sys.functions tidak ada, atau apakah itu hanya sesuatu yang dianggap tidak cukup penting untuk dimasukkan ke dalam tampilan katalog sys ?? Apakah tersedia di SQL Server 2008 ??
Bersulang, Marc
sys.functions
. Anda punyasys.foreign_keys
dan tidaksys.primary_keys
. Bagaimanapun, saya meminta kalian untuk menggunakan saluran terbuka Microsoft untuk mengusulkan dan menyarankan fitur-fitur baru untuk versi upcomming dari SQL Server di connect.microsoft.com/SQLServer/Feedback Saya telah menambahkan umpan balik mengenai sys.functions di connect.microsoft.com/ SQLServer / feedback / details / 1127920Jawaban:
Saya menemukan UDF sangat berguna dan saya menggunakannya sepanjang waktu.
Saya tidak yakin apa alasan Microsoft untuk tidak menyertakan sys.functions yang setara di SQL Server 2005 (atau SQL Server 2008, sejauh yang saya tahu), tetapi cukup mudah untuk menggulung sendiri:
sumber
Cara lain untuk membuat daftar fungsi adalah dengan menggunakan tampilan INFORMATION_SCHEMA.
Menurut situs web Microsoft "Tampilan skema informasi menyediakan tampilan tabel-tabel internal yang independen dari metadata SQL Server. Tampilan skema informasi memungkinkan aplikasi untuk bekerja dengan benar meskipun perubahan signifikan telah dibuat pada tabel sistem yang mendasarinya". Dengan kata lain, tabel Sistem yang mendasari dapat berubah saat SQL dimutakhirkan, tetapi tampilan harus tetap sama.
sumber
INFORMATION_SCHEMA
kueri mengembalikan hasil yang sangat menarik sepertiIS_DETERMINISTIC
(yang ingin saya ketahui).Ini berlaku di 2008 R2 sesuai yang dihasilkan SSMS saat Anda membuat skrip DROP suatu fungsi:
sumber
Ini sedikit lebih bertele-tele, tetapi ini seharusnya melakukan hal yang persis sama:
Sejauh yang saya bisa lihat, ini juga tidak ada di SQL Server 2008.
sumber
Ini tidak menambahkan sesuatu yang baru, tetapi saya menemukan yang berikut ini lebih mudah diingat:
sumber
{ }
) pada bilah alat editor untuk memformat dan menyorotnya dengan baik!sys.objects
sebisa saya.coba ini :
sumber
kebetulan, tidakkah Anda ingin memasukkan type = 'FS'?
itulah yang sesuai dengan item di sys.objects untuk UDF saya yang berasal dari DLL eksternal
sumber
Untuk memperluas jawaban @ LukeH, untuk mengembalikan definisi fungsi juga membutuhkan penggabungan ke
sys.sql_modules
tabel. Jadi pertanyaannya adalah:di mana di atas menampilkan nama fungsi, definisi dan pengenal objeknya masing-masing.
sumber
Untuk penjelasan lebih lengkap tentang fungsi skalar termasuk pemilik dan tipe pengembalian:
sumber
SQL 2000
spesifik, sedikit penyesuaian untuk nama objek:ATAU
sumber