// /r:"C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\Microsoft.Data.Schema.ScriptDom.dll";"C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\Microsoft.Data.Schema.ScriptDom.Sql.dll" namespace Microshaoft { using System; using System.Collections.Generic; using System.IO; using Microsoft.Data.Schema.ScriptDom; using Microsoft.Data.Schema.ScriptDom.Sql; public class Class1 { static void Main(string[] args) { //SqlScriptGeneratorOptions options = new SqlScriptGeneratorOptions(); //options.SqlVersion = SqlVersion.Sql100; //options.KeywordCasing = KeywordCasing.Uppercase; //Sql100ScriptGenerator scriptGenerator = new Sql100ScriptGenerator(options); SqlScriptGenerator scriptGenerator = new Sql100ScriptGenerator(); TSqlParser parser = new TSql100Parser(false); IList<ParseError> errors; string sql = @" --SELECT * FROM [from] WHERE ID='1' select a.id,MAX(a.name),a.Name from sysobjects aa left join syscomments b on a.id = b.id where a.xtype = 'p' and b.[text] like '% exec%' group by a.id "; using (StringReader reader = new StringReader(sql)) { IScriptFragment fragment = parser.Parse(reader, out errors); if (errors != null && errors.Count > 0) { foreach(ParseError pe in errors) { Console.WriteLine(pe.Message); } } else { string script; scriptGenerator.GenerateScript(fragment, out script); Console.WriteLine(script); } } Console.WriteLine(Environment.Version.ToString()); } } }