2017-02-23 17 views
0

ハードコードされた値を持つ "scenarioID"を含むデータベース内のオブジェクトを特定する必要があります。私は、次の例を識別するために探していますSQL Serverでハードコードされた値を見つける

  1. scenarioId = XX(2桁の値)
  2. scenarioId = XX(2桁の値)
  3. scenarioId = XX(2桁の値)

私が書いた以下の質問は、 "scenarioid"を含むオブジェクトを引っ張っているようですが、上記の場合よりも多くを与えています。

SELECT DISTINCT a.[name] 
FROM sysobjects a 
INNER JOIN syscomments b on a.id = b.id 
WHERE b.[text] LIKE '%scenarioId = __[^0-9]%' 
+1

テストするデータを追加したり、誤検出の例を追加できますか?あなたはBにスペースを削除することで、あなたのコードを簡素化することができ – iamdave

答えて

0

私は間違いを認識しました。私は[0-9]を使う代わりに[^ 0-9]を使っていました。

SELECT DISTINCT a.[name] 
FROM sysobjects a 
INNER JOIN syscomments b on a.id = b.id 
WHERE b.[text] LIKE '%scenarioId = [0-9][0-9]%' 
or b.[text] like '%scenarioId=[0-9][0-9]%' 
or b.[text] like '%scenarioId =[0-9][0-9]%' 
or b.[text] like '%scenarioId = [0-9][0-9]%' 
or b.[text] like '%scenarioId = [0-9][0-9]%' 
+1

。このような[テキスト]を... DISTINCT Aを選択します。[名前] をsysobjectsにFROM INNERがREPLACE a.id = b.id 上のsyscomments bを登録しよう(b。[テキスト]、 ''、 '')LIKE '%scenarioId = [0-9] [0-9]%' – nscheaffer

関連する問題