在解析 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 枚举还具有诸如“表”、“模式”、“视图”之类的值,所以我确信这一定是可能的。只是文档稀缺。担