Microsoft.SqlServer.TransactSql.ScriptDom: TSqlTokenType
При разборе 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 также имеет такие значения, как "Таблица", "Схема", "Вид", поэтому я уверен, что это должно быть возможно. Просто документации мало. Дэн