Tôi thấy rằng bạn có thể sử dụng một cách tiếp cận rất dài dòng và đơn giản để kiểm tra sự tồn tại của các đối tượng SQL Server khác nhau theo cách này:
IF OBJECTPROPERTY (object_id('schemaname.scalarfuncname'), 'IsScalarFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.tablefuncname'), 'IsTableFunction') = 1
IF OBJECTPROPERTY (object_id('schemaname.procname'), 'IsProcedure') = 1
Điều này dựa trên hàm OBRIPROPERTY có sẵn trong SQL 2005+. Bài viết MSDN có thể được tìm thấy ở đây .
Hàm OBRIPROPERTY sử dụng chữ ký sau:
OBJECTPROPERTY ( id , property )
Bạn chuyển một giá trị bằng chữ vào tham số thuộc tính, chỉ định loại đối tượng bạn đang tìm kiếm. Có một danh sách lớn các giá trị bạn có thể cung cấp.