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

SQL Server lưu trữ mã thủ tục được lưu trữ ở đâu?

Sử dụng sys.sql_modules bởi vì definitionnvarchar(max) vì nó sẽ không cắt ngắn đoạn mã dài.

Trong INFORMATION_SCHEMA.ROUTINES ROUTINE_DEFINITION cột chỉ là nvarchar(4000) vì vậy nếu bạn thử xem văn bản của một thủ tục dài và bạn sẽ thấy rằng nó đã bị cắt bớt.

Sử dụng điều này để tìm kiếm văn bản trong bất kỳ thủ tục, dạng xem, chức năng nào:

SELECT DISTINCT
    o.name AS Object_Name,o.type_desc
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%'[email protected]+'%'
    ORDER BY o.type_desc,o.name 

sử dụng cái này để xem văn bản của một thủ tục, dạng xem, hàm đã cho:

select * from sys.sql_modules where object_id=object_id('YourProcedure')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 R2 Kích thước tối đa nhị phân

  2. Đặt giá trị mặc định trong cột IF điều kiện được đáp ứng trong SQL 2008

  3. Làm cách nào để nhập bảng tính Excel vào cơ sở dữ liệu SQL Server 2008R2?

  4. SQL Server:Chuyển đổi hàng thành cột

  5. Cột TimeStamp có phải là duy nhất không?