Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Gdzie SQL Server przechowuje kod procedury składowanej?

Użyj sys.sql_modules ponieważ definition to nvarchar(max) ponieważ nie skróci długiego kodu.

W INFORMATION_SCHEMA.ROUTINES ROUTINE_DEFINITION kolumna to tylko nvarchar(4000) więc jeśli spróbujesz wyświetlić tekst długiej procedury, a zobaczysz, że jest on skrócony.

Użyj tego, aby wyszukać tekst w dowolnej procedurze, widoku, funkcji:

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 

użyj tego, aby wyświetlić tekst danej procedury, widoku, funkcji:

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. Co się stanie, jeśli nie zatwierdzisz transakcji w bazie danych (np. SQL Server)?

  2. SQL Server — Przeanalizuj wewnętrzne elementy sp_spaceused

  3. Dziwaczny problem z wydajnością:typowe wyrażenia tabelowe w wbudowanej funkcji zdefiniowanej przez użytkownika

  4. Pobierz tylko datę z grupowania w kolumnie wybierz z DateTime w SQL Server

  5. błąd:26 — Błąd lokalizowania określonego serwera/wystąpienia. (Nie mogę połączyć się z moją lokalną bazą danych z mojego serwera hosta)