次の方法で共有


正規表現によるテキストの検索

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

SQL Server Management Studio の [検索と置換] ダイアログ ボックスの [検索する文字列] フィールドでは、文字や数字の代わりに以下の正規表現を使用できます。

前提条件

正規表現を有効化する方法

検索で正規表現を有効化する手順を次に示します。

  1. [編集]>[検索と置換]>[クイック検索] の順に選択します。
  2. 検索バーの横にある 下矢印>[ファイル内で検索] の順に選択します。
  3. [検索と置換] ウィンドウで [検索オプション] を展開し、[正規表現を使用する] を選択します。

[検索する文字列] フィールドの横にある [式ビルダー] ボタンが使用できるようになります。 このボタンを選ぶと、使用できる正規表現の一覧が表示されます。 正規表現ビルダーから何らかの項目を選択すると、その項目が[検索する文字列] のフィールドに挿入されます。

次の表は、[正規表現ビルダー] で使用できる正規表現の説明です。

Expression 説明
. (改行を除く) 任意の 1 文字に一致します。
.* 任意の文字と 0 回以上一致します
.+ 任意の文字と 1 回以上一致します
[abc] セット abc に含まれる任意の文字と一致します
[^abc] セット abc に含まれない任意の文字と一致します
\d 任意の数字 1 文字に一致します。
(?([^\r\n])\s) 任意の空白文字と一致します
\b 単語の先頭または末尾が一致します
^ 行の先頭と一致します
.$ 任意の改行と一致します
\w\r?\n 行の末尾にある単語の文字と一致します
(dog | cat) dog | cat をキャプチャして、暗黙的に番号を付けます
(?<pet>dog | cat) 部分式 dog | cat をキャプチャして、pet という名前を付けます

正規表現の例をいくつか挙げます。

例 1: すべての Select ステートメントを検索する

SQL スクリプト内のすべての SELECT ステートメントを検索したい場合。

SELECT\s+.*\s+FROM

例 1 の説明

  • SELECT\s+: "SELECT" という単語の後に 1 つ以上の空白文字が続きます。
  • .*: 任意の文字 (行終端記号を除く) に 0 回以上一致します。
  • \s+FROM: 1 つ以上の空白文字の後に "FROM" という単語が続きます。

例 2: 特定の名前付けパターンを持つプロシージャーの検索

SQL スクリプト内で、"usp_" で始まるすべてのストアド プロシージャを検索したい場合。

CREATE\s+PROCEDURE\s+usp_[A-Za-z0-9_]+

例 2 の説明

  • CREATE\s+PROCEDURE\s+: "CREATE PROCEDURE" というワードの後に 1 つ以上の空白文字が続きます。
  • usp_: リテラル文字列 "usp_" と一致します。
  • [A-Za-z0-9_]+: 1 つ以上の英数字またはアンダースコアに一致します。

例 3: SQL スクリプトでのコメントの検索

SQL スクリプト内のすべての単一行コメント (-- で始まるもの) を特定したい場合。

--.*

例 3 の説明

  • --: リテラル文字列 "--" と一致します。
  • .*: 任意の文字 (行終端記号を除く) に 0 回以上一致します。

例 4: すべての Update ステートメントを検索する

SQL スクリプト内のすべての UPDATE ステートメントを検索したい場合。

UPDATE\s+.*\s+SET

例 4 の説明

  • UPDATE\s+: "UPDATE" という単語の後に 1 つ以上の空白文字が続きます。
  • .*: 任意の文字 (行終端記号を除く) に 0 回以上一致します。
  • \s+ SET: 1 つ以上の空白文字の後に "SET" という単語が続く文字列と一致します。

例 5: DDL ステートメント内のテーブル名の検索

SQL スクリプト内の CREATE TABLE ステートメントからテーブル名を抽出したい場合。

CREATE\s+TABLE\s+(\w+)

例 5 の説

  • CREATE\s+TABLE\s+: "CREATE TABLE" という単語の後に 1 つ以上の空白文字が続きます。
  • (\w+): 1 つ以上の単語文字 (英数字とアンダースコア) に一致します。それらをキャプチャして抽出します。

その他の例については、Visual Studio の正規表現に関するページを参照してください。