次のような SQL クエリで解析する場合:
SELECT g.A, g.B, g.C FROM dbo.Goat g inner join dbo.Badger b on g.A=b.A
TSqlParserToken を繰り返し処理すると、TokenType というプロパティがあります。私は以下を取得します:
SELECT Select
WhiteSpace
g Identifier
. Dot
A Identifier
, Comma
WhiteSpace
g Identifier
. Dot
B Identifier
, Comma
WhiteSpace
g Identifier
. Dot
C Identifier
WhiteSpace
FROM From
WhiteSpace
dbo Identifier
. Dot
Goat Identifier
WhiteSpace
g Identifier
WhiteSpace
inner Inner
WhiteSpace
join Join
WhiteSpace
dbo Identifier
. Dot
Badger Identifier
WhiteSpace
b Identifier
WhiteSpace
on On
WhiteSpace
g Identifier
. Dot
A Identifier
= EqualsSign
b Identifier
. Dot
A Identifier
パーサーがこれらの値を返すためには、基礎となるスキーマを認識している必要があることを理解しています。より意識的なトークンのセットを返すことができるように、基礎となるオブジェクトをパーサーにフィードすることは可能ですか?
TSqlTokenType 列挙型には、'Table'、'Schema'、'View' などの値もあるため、これは可能であるに違いありません。資料が少ないだけです。ダン