次のような式からテーブル名とエイリアスを抽出するには、正規表現が必要です。
INNER JOIN dbo.table1 t ON t.x = table n.y
INNER JOIN table2 on table2.x = table n.y
INNER JOIN table3 t3 on t3.x = tablen.y
上記のクエリから、次をキャプチャしたいと思います。
(Table Name, Alias)
table1, t
table2, " " <-- No alias specified so blank or null
table3, t3
テーブルを指定するには、次の方法があります。
- dbo.table1 などの所有者の有無にかかわらず
- エイリアスの有無にかかわらず
いずれにせよ、私が気にするのはテーブル名とエイリアスだけです。
違いが生じる場合に備えて、クエリは SQL Server データベースに対して行われ、C# アプリケーション内で使用されます。
私は、Regex Match コレクションの Matches と RegEx グループを反復処理することに精通しています。使用する適切な正規表現のみに苦労しています。