100 を超える SQL ファイルで特定の SQL スキーマ修飾の出現箇所を見つけて置き換える正規表現を作成しようとしています。
元のファイルには、(オプションで) 角かっこ ('['
および']'
) がある場合とない場合があるスキーマ修飾を含めることができます。たとえば、スクリプト ファイルには次のものが含まれる場合があります。
[database].[dbo].[table_name]
また
database.[dbo].[table_name]
また
database.dbo.[table_name]
そして可能なすべての組み合わせ...
私はこのようなものを書きました:
([)?database(])?\.([)?dbo(]?)\.([?)table_name(]?)
実際には機能していません(regex101)
更新(回答に基づくソリューションを使用):
以下の @Toto の選択した回答に基づいて拡張し、次の文字列に一致する可能性のあるテーブル エイリアスを追加し、スペースのプレフィックスとサフィックスを提供します。
database.dbo.table_name tn
(\s+)(\[)?database(\])?\.(\[)?dbo(\]?)\.(\[?)table_name(\]?)((\s+)(tn))?(\s+)?