Updates to MyGeneration Templates

This commit is contained in:
Rich
2010-09-29 17:01:42 +00:00
parent fd69da45b9
commit f3782ea2a2
4 changed files with 136 additions and 50 deletions

View File

@@ -221,7 +221,7 @@ public class GeneratedTemplate : DotNetScriptTemplate
_exportPath = input["outputPath"].ToString();
_dbName = input["chooseDatabase"].ToString();
IDatabase db = MyMeta.Databases[_dbName];
SaveProcs(db);
SaveProcsSorted(db);
//SaveTables(db);
}
private bool IncludeVolian(string sName)
@@ -264,6 +264,47 @@ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AN
DROP <%=sType%> [<%=sName%>];
GO
<%
output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n"));
%>
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded'
ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation'
GO
<%
SaveFile(ip.Name);
}
}
}
}
}
private void SaveProcsSorted(IDatabase db)
{
SortedList sortedList = new SortedList();
foreach(IProcedure ip in db.Procedures)
{
sortedList.Add(ip.Name,ip);
}
foreach(IProcedure ip in sortedList.Values)
{
if(ip.Schema != "sys"){
bool isProc = IsProcedure(ip);
string sType = isProc ? "PROCEDURE" : "FUNCTION";
string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction");
string sName = ip.Name;
if((bool)input["chkDrop"]){
if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName))
output.writeln("DROP " + sType + " [" + sName + "]");
} else {
if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName))
{
%>
/****** Object: StoredProcedure [<%=sName%>] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1)
DROP <%=sType%> [<%=sName%>];
GO
<%
output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n"));
%>
@@ -281,7 +322,7 @@ GO
}
private bool IsProcedure(IProcedure ip)
{
return ip.ProcedureText.Contains("CREATE PROCEDURE");
return ip.ProcedureText.ToUpper().Contains("CREATE PROCEDURE");
}
private bool IsTableFunction(IProcedure ip)
{