Saya sedang menulis fungsi yang ditentukan pengguna dalam SQL Server 2008. Saya tahu bahwa fungsi tidak dapat meningkatkan kesalahan dengan cara biasa - jika Anda mencoba memasukkan pernyataan RAISERROR, SQL akan dikembalikan:
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
Tetapi faktanya, fungsi mengambil beberapa input, yang mungkin tidak valid dan, jika ada, tidak ada nilai yang berarti fungsi dapat kembali. Apa yang harus saya lakukan?
Saya bisa, tentu saja, mengembalikan NULL, tetapi akan sulit bagi pengembang mana pun yang menggunakan fungsi untuk memecahkan masalah ini. Saya juga bisa menyebabkan pembagian dengan nol atau sesuatu seperti itu - ini akan menghasilkan pesan kesalahan, tetapi salah kaprah. Apakah ada cara agar pesan kesalahan saya sendiri dilaporkan?