Код:
Код: Выделить всё
using Microsoft.SqlServer.TransactSql.ScriptDom;
public void Parser(string tsql)
{
TSql160Parser parser = new TSql160Parser(true);// false);
IList
errors1;
errors1 = new List { };
using (StringReader sr = new StringReader(tsql))
{
TSqlFragment fragment = parser.Parse(sr, out errors1);
if (errors1.Count > 0)
{
Console.WriteLine($"PARSE: Syntax error(s): {errors1.Count}");
}
IEnumerable batches = GetBatches(fragment);
foreach (var batch in batches)
{
Console.WriteLine(batch);
}
}
}
Код: Выделить всё
DECLARE @x INT = 0;
DECLARE @y INT = NULL;
DECLARE @xy INTUGER = 0;
DECLARE @xy INT = 0;
IF @x > @xy PRINT 1;
ELSE PRINT 0;
SSMS Parse выдает ошибку
Сообщение 134, уровень 15, состояние 1, строка 4 Имя переменной '@xy' уже
объявлено. Имена переменных должны быть уникальными в пакете запроса или
хранимой процедуре.
Кроме того, этот сценарий не содержит ошибок на C#
Код: Выделить всё
DECLARE @xy INT = 0;
DECLARE @xy MOO = 0;
Подробнее здесь: https://stackoverflow.com/questions/793 ... ntax-error
Мобильная версия