Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Къде SQL Server съхранява кода на съхранената процедура?

Използвайте sys.sql_modules защото definition е nvarchar(max) защото няма да съкрати дългия код.

В INFORMATION_SCHEMA.ROUTINES ROUTINE_DEFINITION колоната е само nvarchar(4000) така че ако се опитате да видите текста на дълга процедура и ще видите, че е съкратен.

Използвайте това, за да търсите текст във всяка процедура, изглед, функция:

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 

използвайте това, за да видите текста на дадена процедура, изглед, функция:

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. Как да създадете тригер за проследяване на последните променени данни

  2. Задайте опция 9 в съхранената процедура на SQL Server, като използвате WinHttp.WinHttpRequest.5.1 за TLS 1.2

  3. Изберете редове, където стойността на колоната е променена

  4. Настройка на изчакване за SQL Server

  5. Възможно ли е да се извика дефинирана от потребителя функция без името на схемата?