2010-03-26 63 views
15

Tôi đang cố gắng lấy danh sách các thủ tục được lưu trữ trong t-sql. Tôi đang sử dụng dòng:Lấy danh sách các thủ tục được lưu trữ đã lọc bằng t-sql

exec sys.sp_stored_procedures; 

Tôi muốn lọc các kết quả trở lại mặc dù, vì vậy tôi chỉ nhận được người dùng tạo thủ tục lưu trữ. Tôi muốn lọc ra sp_ *, dt_ *, fn_ *, xp_ * và mọi thứ khác, đó là quy trình lưu trữ hệ thống và không quan tâm đến tôi. Làm thế nào tôi có thể thao tác tập kết quả được trả về?

Sử dụng Sql Server 2008 express.

Giải quyết! Dưới đây là những gì tôi đã sử dụng:

SELECT name FROM sys.procedures 
WHERE [type] = 'P' 
AND name NOT LIKE 'sp_%' 
AND name NOT LIKE 'dt_%' 
ORDER BY name ASC; 
+0

Tiêu đề của câu hỏi này không phù hợp với giải pháp, có thể danh hiệu được chỉnh sửa 'làm cách nào để liệt kê các thủ tục được lưu trữ'? –

+0

Tôi đồng ý, tiêu đề thật khủng khiếp. Tôi đã cập nhật nó. – DanDan

Trả lời

15

Thay vì sử dụng các Stored Procedure bạn có thể sử dụng các giao diện sau:

Select * From sys.procedures 
Where [Type] = 'P' 

hoặc

Select * From Information_Schema.Routines 
+0

Cảm ơn! Tôi sẽ đưa giải pháp đầy đủ trở lại vào câu hỏi của tôi. – DanDan

2

Chọn các mục từ sysobjects table và sử dụng một mệnh đề where type = 'P' cho thủ tục lưu trữ và bộ lọc trên name.

1
SELECT [Routine_Name] 
FROM [INFORMATION_SCHEMA].[ROUTINES] 
WHERE [ROUTINE_TYPE] = 'PROCEDURE' 
Các vấn đề liên quan