using Microsoft.SqlServer.TransactSql.ScriptDom;
using System.Collections.Generic;
public static void Main()
var query = "DECLARE @NEW_VERSION_NUMBER int = 1;"+
"DECLARE @NEW_VERSION_NUMBER int = 1;";
var result = query.IsValidSql(out errors);
Console.WriteLine(result);
Console.WriteLine(string.Join("; ", errors.ToArray()));
public static class SqlStringExtensions
public static bool IsValidSql(this string query, out IList<string> errors)
if (string.IsNullOrWhiteSpace(query)) throw new ArgumentNullException("asdasd");
IList<ParseError> parseErrors;
using (var reader = new StringReader(query))
new TSql150Parser(false).Parse(reader, out parseErrors);
errors = parseErrors.Select(err => err.Message).ToList();