Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn để liệt kê tất cả các thủ tục được lưu trữ

Như Mike đã nêu, cách tốt nhất là sử dụng information_schema . Miễn là bạn không ở trong cơ sở dữ liệu chính, các thủ tục được lưu trữ trong hệ thống sẽ không được trả lại.

SELECT * 
  FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE'

Nếu vì lý do nào đó, bạn có các thủ tục được lưu trữ không thuộc hệ thống trong cơ sở dữ liệu chính, bạn có thể sử dụng truy vấn (điều này sẽ lọc ra các thủ tục được lưu trữ trong hệ thống MOST):

SELECT * 
  FROM [master].INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE' 
   AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhà cung cấp Microsoft OLE DB cho SQL Server có hỗ trợ TLS 1.2 không

  2. SQL DELETE với INNER JOIN

  3. Tạo giá trị int ngẫu nhiên từ 3 đến 6

  4. Loại trừ một cột bằng cách sử dụng SELECT * [ngoại trừ cộtA] FROM tableA?

  5. Mệnh đề WHERE so với ON khi sử dụng JOIN