|
using System;
using System.Collections.Specialized;
using System.Text;
namespace ObjectHelper.DBObjectType
{
public class ClrTrigger:Trigger
{
//public string ParentObjectName { get; set; }
public string AssemblyClass { get; set; }
public string AssemblyMethod { get; set; }
public string AssemblyName { get; set; }
public string ExecuteAs { get; set; }
public int AssemblyId { get; set; }
public ClrTrigger()
{
Events = new StringCollection();
}
public new string Script(ScriptingOptions so)
{
var sbScript = new StringBuilder();
sbScript.Append("CREATE TRIGGER ");
if (Schema != "")
{
sbScript.Append("[" + Schema + "].");
}
sbScript.Append("[" + Name + "]" + Environment.NewLine);
if (ParentObjectName != "")
{
sbScript.Append("ON ");
if (ParentObjectSchema != "")
{
sbScript.Append("[" + ParentObjectSchema + "].");
}
sbScript.Append("[" + ParentObjectName + "]" + Environment.NewLine);
}
else
{
sbScript.Append("ON DATABASE" + Environment.NewLine);
}
if (ExecuteAs != "")
{
sbScript.Append("WITH EXECUTE AS " + ExecuteAs + Environment.NewLine);
}
if(IsInsteadOf)
sbScript.Append("INSTEAD OF ");
else if(IsAfter)
sbScript.Append("AFTER ");
else
sbScript.Append("FOR ");
for (int i = 0; i < Events.Count; i++)
{
sbScript.Append(Events[i]);
if (i != Events.Count - 1)
{
sbScript.Append(",");
}
}
sbScript.Append(Environment.NewLine + "AS" + Environment.NewLine);
sbScript.Append("EXTERNAL NAME [" + AssemblyName+"].["+AssemblyClass+"].["+ AssemblyMethod +"]"+ Environment.NewLine);
sbScript.Append("GO");
return sbScript.ToString();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
My name is Robert Kanasz and I have been working with ASP.NET, WinForms and C# for several years.
MCSD - Web Applications
MCSE - Data Platform
MCPD - ASP.NET Developer 3.5
- Web Developer 4
MCITP - Database Administrator 2008
- Database Developer 2008
MCSA - SQL Server 2012
MCTS - .NET Framework 3.5, ASP.NET Applications
- SQL Server 2008, Database Development
- SQL Server 2008, Implementation and Maintenance
- .NET Framework 4, Data Access
- .NET Framework 4, Service Communication Applications
- .NET Framework 4, Web Applications
MS - Programming in HTML5 with JavaScript and CSS3 Specialist
Open source projects:
DBScripter - Library for scripting SQL Server database objects
Please, do not forget vote