using System; using System.Collections.Generic; using System.Linq; using System.Text; //using Microsoft.SqlServer.Management.Smo; using System.Data.SqlClient; using System.Data; namespace SQLScripter { class Program { static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("Syntax : SQLScripter.exe [t=Tables,v=Views, s=Stored Procedures, a=User Defined Aggregates, f=User Defined Functions, d=Database Triggers, j=Jobs Empty=All], l=Linked Servers, u=User Logins"); } else { try { string serverName = args[0]; string databaseName = args[1]; string path = args[2]; string sqlObjectTypes = "tvsafdjlu"; if (args.Length == 4) sqlObjectTypes = args[3]; char[] types = sqlObjectTypes.ToCharArray(); ScripterHelper s = new ScripterHelper(serverName, databaseName, path); if (Array.IndexOf(types, 't') != -1) s.ScriptTables(); if (Array.IndexOf(types, 'v') != -1) s.ScriptViews(); if (Array.IndexOf(types, 's') != -1) s.ScriptStoredProcedures(); if (Array.IndexOf(types, 'd') != -1) s.ScriptDatabaseTriggers(); if (Array.IndexOf(types, 'a') != -1) s.ScriptUserDefinedAggregates(); if (Array.IndexOf(types, 'f') != -1) s.ScriptUserDefinedFunctions(); if (Array.IndexOf(types, 'j') != -1) s.ScriptJobs(); s.ScriptDatabase(); if (Array.IndexOf(types, 'l') != -1) s.ScriptLinkedServers(); if (Array.IndexOf(types, 'u') != -1) s.ScriptLogins(); s.SaveLastUpdate(); Console.WriteLine("Scripting Completed!"); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Error :"); Console.WriteLine(ex.ToString()); } } } } }