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

4

0 回答 0