適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
次の正規表現は、SQL Server Management Studio の [Find what] フィールドで、文字または数字を置き換えるために使用できます。SQL Server Management Studio [Find and Replace] ダイアログ ボックスに適用できます。
前提 条件
正規表現を有効にする方法
検索で正規表現を有効にする手順を次に示します。
- 編集に移動して>検索と置換>クイック検索.
- 検索バーの横にある 下向き矢印>[ファイルで検索]を選択します。
- [ 検索と置換 ] ウィンドウで、[ 検索] オプションを展開し、[ 正規表現の使用] を選択します。
[式ビルダー] ボタン は [検索する内容] フィールドの横にあり、 使用できるようになります。 このボタンを選択すると、使用可能な正規表現の一覧が表示されます。 式ビルダーから項目を選択すると、[検索文字列] に挿入されます。
次の表に、式ビルダーの正規表現の一部を示します。
表現 | 説明 |
---|---|
. |
任意の 1 文字に一致する (改行を除く) |
.* |
任意の文字を 0 回以上一致させる |
.+ |
任意の文字に 1 回以上一致する |
[abc] |
セット内の任意の文字と一致 abc |
[^abc] |
セット abc に含まれていない任意の文字に一致する |
\d |
任意の数値に一致する |
(?([^\r\n])\s) |
任意の空白文字と一致する |
\b |
単語の先頭または末尾でマッチする |
^ |
行の先頭で一致する |
.$ |
改行に一致する |
\w\r?\n |
行の末尾にある単語文字を一致させる |
(dog | cat) |
式 dog | cat をキャプチャして暗黙的に番号を付けます |
(?<pet>dog | cat) |
部分式 dog | cat をキャプチャし、pet という名前を付けます |
例
正規表現を使用する例をいくつか示します。
例 1: すべての select ステートメントを検索する
T-SQL スクリプト内のすべての SELECT
ステートメントを検索する必要があります。
SELECT\s+.*\s+FROM
例 1 の説明
-
SELECT\s+
:SELECT
単語の後に 1 つ以上の空白文字が続く単語と一致します。 -
.*
: 任意の文字(行終端記号を除く)に 0 回以上マッチします。 -
\s+FROM
: 1 つ以上の空白文字の後にFROM
という単語が続きます。
例 2: 特定の名前付けパターンを持つプロシージャを検索する
T-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: T-SQL スクリプトでコメントを検索する
T-SQL スクリプト内のすべての単一行コメント ( --
以降) を識別する必要があります。
--.*
例 3 の説明
-
--
: リテラル文字列の--
と一致します。 -
.*
: 任意の文字(行終端記号を除く)に 0 回以上マッチします。
例 4: すべての update ステートメントを検索する
T-SQL スクリプト内のすべての UPDATE
ステートメントを検索する必要があります。
UPDATE\s+.*\s+SET
例 4 の説明
-
UPDATE\s+
:UPDATE
単語の後に 1 つ以上の空白文字が続く単語と一致します。 -
.*
: 任意の文字(行終端記号を除く)に 0 回以上マッチします。 -
\s+SET
: 1 つ以上の空白文字の後にSET
という単語が続きます。
例 5: DDL ステートメントでテーブル名を検索する
T-SQL スクリプトの CREATE TABLE
ステートメントからテーブル名を抽出する場合。
CREATE\s+TABLE\s+(\w+)
例 5 の説明
-
CREATE\s+TABLE\s+
:CREATE TABLE
単語の後に 1 つ以上の空白文字が続く単語と一致します。 -
(\w+)
: 1 つ以上の単語文字 (英数字とアンダースコア) に一致し、抽出のためにそれらをキャプチャします。
その他の例については、Visual Studio の 正規表現に関するページを参照してください。