2

次のような 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' などの値もあるため、これは可能であるに違いありません。資料が少ないだけです。ダン

4

0 に答える 0