[英]sql server: How to find exact match in all the database objects?
select B.* from sys.sql_modules A
JOIN SYS.objects B ON A.object_id=B.object_id
WHERE definition LIKE '%Packages%'
我想在我所有的數據庫結果中查找所有出現的“包裝”一詞。 我只想返回具有完全匹配“ Packages”的結果,而不是其他具有此子字符串的結果?
現在我得到帶有“ SPAPacakges”等的SP,其中“ Packages”作為子字符串。 我要刪除這些。
我怎么做?
SELECT referencing_schema_name, referencing_entity_name,
referencing_id, referencing_class_desc
FROM sys.dm_sql_referencing_entities ('dbo.Packages', 'OBJECT');
這對我有用。 但是我不確定它是否完美。 我不明白它的完整含義。
如果您想查找所有出現的Packages
字詞,可能在其前后有空格(即,單詞本身是孤立的),則可以嘗試以下WHERE
條件:
WHERE definition LIKE ' Packages' OR
definition LIKE 'Packages ' OR
definition LIKE ' Packages ' OR
definition LIKE 'Packages'
只需從'Packages'
刪除通配符%
,就可以添加LTRIM
和RTRIM
來避免空格問題,如下所示:
select B.* from sys.sql_modules A
JOIN SYS.objects B ON A.object_id=B.object_id
WHERE LTRIM(RTRIM(definition)) LIKE 'Packages'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.