//[Microsoft.SqlServer.Server.SqlProcedure] //public static void CreateNewRecord() //{ // // Variables. // SqlMetaData column1Info; // SqlMetaData column2Info; // SqlMetaData column3Info; // SqlDataRecord record; // // Create the column metadata. // column1Info = new SqlMetaData("Column1", SqlDbType.NVarChar, 12); // column2Info = new SqlMetaData("Column2", SqlDbType.Int); // column3Info = new SqlMetaData("Column3", SqlDbType.DateTime); // // Create a new record with the column metadata. // record = new SqlDataRecord(new SqlMetaData[] { column1Info, // column2Info, // column3Info }); // // Set the record fields. // record.SetString(0, "Hello World!"); // record.SetInt32(1, 42); // record.SetDateTime(2, DateTime.Now); // // Send the record to the calling program. // SqlContext.Pipe.Send(record); //} //public static void getDatabaseMetaData(string SQLIP, string SQLDB, string SQLUser, string SQLPass) //{ // try // { // string connString = String.Format(@"Data Source = {0}; Initial Catalog = {1}; Persist Security Info = true; User ID = {2}; Password = {3}", // SQLIP, SQLDB, SQLUser, SQLPass); // using (SqlConnection conn = new SqlConnection(connString)) // { // conn.Open(); // DatabaseMetaData dbmd = conn. (); // MessageBox.Show("dbmd:driver version = " + dbmd.getDriverVersion() + "\n" + // "dbmd:driver name = " + dbmd.getDriverName() + "\n" + // "db name = " + dbmd.getDatabaseProductName() + "\n" + // "db ver = " + dbmd.getDatabaseProductVersion() + "\n"; // } // } // catch (Exception e) // { // MessageBox.Show(e.Message.ToString () ); // } //} private void button1_Click(object sender, EventArgs e) { Microsoft.SqlServer.Management.SqlParser.Parser.ParseOptions parseOptions = new Microsoft.SqlServer.Management.SqlParser.Parser.ParseOptions(); parseOptions.BatchSeparator = "GO"; Microsoft.SqlServer.Management.SqlParser.Parser.Scanner parser = new Microsoft.SqlServer.Management.SqlParser.Parser.Scanner(parseOptions); //string Sql = @"Create Procedure MyProc as Select top(10) * from dbo.Table"; //string Sql = @"Create Procedure MyProc as Select top(10) * from dbo.Table"; string Sql = @"select* from cust_service_order cso (nolock) where NOT EXISTS(SELECT 1 FROM dbo.camp_ro_data z(nolock) WHERE z.ro_id = cso.service_ord_id1)"; parser.SetSource(Sql, 0); int state = 0, start, end, token; bool pair, param; string tokenName = "", tokenValue = ""; do { token = parser.GetNext(ref state, out start, out end, out pair, out param); tokenName = ((Microsoft.SqlServer.Management.SqlParser.Parser.Tokens)token).ToString(); if (tokenName != "EOF") { tokenValue = Sql.Substring(start, (end - start) + 1); MessageBox.Show(tokenName + ":" + tokenValue); } // Do some stuff here with the token } while (token != 128); // 128 signifies the end of the query //MessageBox.Show(DateTime.Now.ToString("yyyymmddThhmss")); //getDatabaseMetaData("10.55.207.29", "NissanNNA", "nnadb", "!tms991"); //CreateNewRecord(); }
// static void test(string[] args) // { // var parser = new Microsoft.Data.Schema.ScriptDom.Sql.TSql100Parser(true); // System.IO.TextReader txtRdr = new System.IO.StringReader("Select * from customers as c inner join products as p on p.custid = c.id where 1 = 1 order by customers.name"); // IList<Microsoft.Data.Schema.ScriptDom.ParseError> parseErrors = new List<Microsoft.Data.Schema.ScriptDom.ParseError>(); // var fragment = parser.Parse(txtRdr, out parseErrors); // if (fragment != null) // { // var tSqlScript = ((Microsoft.Data.Schema.ScriptDom.Sql.TSqlScript)(fragment)); // var tokens = tSqlScript.ScriptTokenStream; // var stmts = tSqlScript.Batches.FirstOrDefault().Statements; // foreach (var item in tokens) // { // switch (item.TokenType) // { // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Add: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AddEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.All: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Alter: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Ampersand: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.And: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Any: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.As: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Asc: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringLiteral: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringOrQuotedIdentifier: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Authorization: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Backup: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bang: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Begin: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Between: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseAndEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseOrEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseXorEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Break: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Browse: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bulk: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.By: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cascade: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Case: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Check: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Checkpoint: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Circumflex: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Close: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Clustered: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Coalesce: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Collate: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Colon: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Column: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Comma: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Commit: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Compute: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Constraint: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Contains: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ContainsTable: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Continue: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Convert: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Create: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cross: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Current: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentDate: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTime: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTimestamp: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentUser: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cursor: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Database: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dbcc: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deallocate: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Declare: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Default: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Delete: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deny: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Desc: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Disk: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distinct: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distributed: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Divide: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DivideEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DollarPartition: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dot: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Double: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DoubleColon: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Drop: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dump: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Else: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.End: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EndOfFile: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EqualsSign: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Errlvl: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Escape: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Except: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exec: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Execute: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exists: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exit: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.External: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Fetch: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.File: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FillFactor: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.For: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Foreign: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeText: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeTextTable: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.From: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Full: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Function: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Go: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GoTo: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Grant: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GreaterThan: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Group: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Having: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HexLiteral: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HoldLock: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identifier: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identity: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityColumn: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityInsert: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.If: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.In: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Index: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Inner: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Insert: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Integer: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Intersect: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Into: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Is: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Join: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Key: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Kill: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Label: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Left: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftCurly: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftParenthesis: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LessThan: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Like: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LineNo: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Load: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Merge: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Minus: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ModEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Money: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultilineComment: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultiplyEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.National: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NoCheck: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NonClustered: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.None: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Not: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Null: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NullIf: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OdbcInitiator: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Of: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Off: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Offsets: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.On: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Open: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenDataSource: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenQuery: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenRowSet: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenXml: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Option: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Or: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Order: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Outer: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Over: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Percent: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PercentSign: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Pivot: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plan: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plus: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Precision: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Primary: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Print: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Proc: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ProcNameSemicolon: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Procedure: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PseudoColumn: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Public: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.QuotedIdentifier: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Raiserror: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Read: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ReadText: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Real: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Reconfigure: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.References: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Replication: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restore: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restrict: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Return: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revert: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revoke: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Right: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightCurly: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightOuterJoin: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightParenthesis: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rollback: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowCount: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowGuidColumn: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rule: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Save: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Schema: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Select: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Semicolon: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SessionUser: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Set: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SetUser: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Shutdown: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SingleLineComment: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Some: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SqlCommandIdentifier: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Star: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Statistics: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.StopList: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SubtractEquals: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SystemUser: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TSEqual: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Table: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TableSample: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TextSize: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Then: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tilde: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.To: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Top: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tran: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Transaction: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Trigger: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Truncate: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UnicodeStringLiteral: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Union: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unique: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unpivot: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Update: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UpdateText: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Use: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.User: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Values: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Variable: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Varying: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.VerticalLine: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.View: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WaitFor: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.When: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Where: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.While: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WhiteSpace: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.With: // break; // case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WriteText: // break; // default: // break; // } // Console.WriteLine(item.Text); // } // } // //parser.Parse(); // Console.ReadKey(); // } //} #endregion static void parseSqlparser() { var pOption = new Microsoft.SqlServer.Management.SqlParser.Parser.ParseOptions(); StreamReader sr = new StreamReader(filename); string parseSourceCode = sr.ReadToEnd(); String[] queries = parseSourceCode.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries); StreamWriter sw = new StreamWriter(filenameoutput); foreach (String q in queries) { var msParseResult = Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse(q + "GO", pOption); var all1 = msParseResult.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); var parseResult = all1.First().GetValue(msParseResult); var refToPropery = parseResult.GetType().GetProperties().First(x => x.Name == "Xml"); var searchedResult = refToPropery.GetValue(parseResult, null); sw.Write(searchedResult.ToString()); } sw.Close(); // Console.Write( searchedResult.ToString()); }