private List <string> Parse(string sql) { var parser = new Microsoft.SqlServer.TransactSql.ScriptDom.TSql130Parser(false); IList <ParseError> errors; var fragment = parser.Parse(new StringReader(sql), out errors); if (errors != null && errors.Count > 0) { List <string> errorList = new List <string>(); foreach (var error in errors) { errorList.Add(error.Message); } return(errorList); } return(null); }
protected List <string> Parse(string sql) { var parser = new Microsoft.SqlServer.TransactSql.ScriptDom.TSql130Parser(false); ScriptErrors.Clear(); var resultValid = true; IList <ParseError> errors; var fragment = parser.Parse(new StringReader(sql), out errors); if (errors != null && errors.Count > 0) { List <string> errorList = new List <string>(); foreach (var error in errors) { ScriptErrors.Add(new SqlScriptError() { ParseError = error }); } resultValid = false; return(errorList); } var tsql = fragment as Microsoft.SqlServer.TransactSql.ScriptDom.TSqlScript; if (tsql != null && tsql.Batches != null) { foreach (var batch in tsql.Batches) { if (batch.Statements != null) { foreach (var statement in batch.Statements) { if (statement is UseStatement) { resultValid = false; } } } } } IsValidScript = resultValid; return(null); }