Bri*_*ter 4 sql sql-server stored-procedures sql-server-2005 sql-server-2008
以下代码似乎没有搜索整个例程定义.
代码块1:
select top 50 * from information_schema.routines
where routine_definition like '%09/01/2008%' and specific_Name like '%NET'
Run Code Online (Sandbox Code Playgroud)
代码块2:
SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%EffectiveDate%' AND ROUTINE_TYPE='PROCEDURE' and ROUTINE_NAME like '%NET'
Run Code Online (Sandbox Code Playgroud)
我知道在大多数情况下这些SQL都可以工作.问题是这样的:当我为"EffectiveDate"运行它时,它在一些存储过程中被埋在~800行,这些存储过程从未出现在结果中.就像"喜欢"只搜索如此深刻.
有关修复此问题的提示吗?
我想在ENTIRE存储过程中搜索指定的文本.
谢谢!
G M*_*ros 10
select *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE OBJECTPROPERTY(OBJECT_ID(SPECIFIC_NAME),'IsMSShipped') =0
and OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME)) like '%EffectiveDate%'
AND ROUTINE_TYPE='PROCEDURE'
AND ROUTINE_NAME like '%NET'
Run Code Online (Sandbox Code Playgroud)
请改用对象定义.
只是为了澄清过程文本被截断的原因:
ROUTINE_DEFINITION nvarchar(4000)
返回第一4000个字符的函数的定义文本或存储过程的,如果函数或存储过程是不加密的.否则,返回NULL.
要确保获取完整定义,请
OBJECT_DEFINITION在sys.sql_modules目录视图中查询 函数或定义列 .
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |