簡體   English   中英

SQL Server:如何在所有數據庫對象中查找完全匹配?

[英]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'刪除通配符% ,就可以添加LTRIMRTRIM來避免空格問題,如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM