Menghuraikan kod SQL menggunakan C#
Artikel ini menerangkan cara menggunakan Microsoft.SqlServer.Management.SqlParser.Parser
ruang nama untuk menghuraikan kod SQL dalam C#. Ruang nama ini disertakan dalam pemasangan Microsoft.SqlServer.Management.SqlParser.dll
, yang dihantar dengan SQL Server dan boleh diedarkan secara bebas.
SqlServer.Management.SqlParser.Parser
menyediakan kefungsian untuk menghuraikan pernyataan Transact-SQL (T-SQL) dan menjana urutan token yang mewakili struktur setiap pernyataan. Kaedah contoh berikut menunjukkan proses penghuraian:
<code class="language-csharp">public static IEnumerable<TokenInfo> ParseSql(string sql) { ParseOptions parseOptions = new ParseOptions(); Scanner scanner = new Scanner(parseOptions); int state = 0, start, end, lastTokenEnd = -1, token; bool isPairMatch, isExecAutoParamHelp; List<TokenInfo> tokens = new List<TokenInfo>(); scanner.SetSource(sql, 0); while ((token = scanner.GetNext(ref state, out start, out end, out isPairMatch, out isExecAutoParamHelp)) != (int)Tokens.EOF) { TokenInfo tokenInfo = new TokenInfo { Start = start, End = end, IsPairMatch = isPairMatch, IsExecAutoParamHelp = isExecAutoParamHelp, Sql = sql.Substring(start, end - start + 1), Token = (Tokens)token }; tokens.Add(tokenInfo); lastTokenEnd = end; } return tokens; }</code>
Dalam contoh ini, kelas TokenInfo
ialah kelas ringkas yang mengandungi sifat untuk maklumat token. Tokens
ialah penghitungan (Microsoft.SqlServer.Management.SqlParser.Parser.Tokens
) yang mentakrifkan pemalar seperti TOKEN_BEGIN
, TOKEN_COMMIT
dan TOKEN_EXISTS
.
Sila ambil perhatian bahawa pemasangan Microsoft.SqlServer.Management.SqlParser
kini tersedia sebagai pakej NuGet yang berasingan: https://www.php.cn/link/e6e8bbe351bf19f963820a96543f25db.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Kod SQL dalam C# Menggunakan Ruang Nama Microsoft.SqlServer.Management.SqlParser?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!