Tôi muốn tạo ra một truy vấn vào danh sách của tất cả người sử dụng thủ tục lưu trữ được xác định, trừ những người có hệ thống các thủ tục lưu trữ, xem xét rằng:Làm cách nào để liệt kê tất cả các quy trình không được lưu trữ trên hệ thống?
- Kiểm tra tên như "sp_" không hoạt động vì có người dùng thủ tục được lưu trữ bắt đầu bằng "sp_".
- Kiểm tra thuộc tính is_ms_shipped không hoạt động vì có các thủ tục được lưu trữ hệ thống có cờ = 0, ví dụ: sp_alterdiagram (nó không được MSShipped nhưng xuất hiện trong Hệ thống lưu trữ thủ tục trong SQL Server Management Studio).
Phải có thuộc tính hoặc cờ ở đâu đó vì bạn có thể thấy "Quy trình lưu trữ hệ thống" trong một thư mục riêng trong SQL 2005. Có ai biết không?
Edit: Một sự kết hợp của các gợi ý dưới đây làm việc cho tôi:
select *
from
sys.objects O LEFT OUTER JOIN
sys.extended_properties E ON O.object_id = E.major_id
WHERE
O.name IS NOT NULL
AND ISNULL(O.is_ms_shipped, 0) = 0
AND ISNULL(E.name, '') <> 'microsoft_database_tools_support'
AND O.type_desc = 'SQL_STORED_PROCEDURE'
ORDER BY O.name
ông đề cập đến is_ms_shipped trong câu hỏi của mình và nói rằng nó không đáng tin cậy. –
Đã bỏ lỡ điều này lúc đầu, nhưng đã cập nhật đề xuất của tôi một chút sau đó. – AlexS