You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
51 lines
1.8 KiB
using System.Data.SqlClient;
|
|
using OpenDBDiff.Schema.SQLServer.Generates.Model;
|
|
|
|
namespace OpenDBDiff.Schema.SQLServer.Generates.Generates
|
|
{
|
|
public class GenerateDDLTriggers
|
|
{
|
|
private Generate root;
|
|
|
|
public GenerateDDLTriggers(Generate root)
|
|
{
|
|
this.root = root;
|
|
}
|
|
|
|
private static string GetSQL()
|
|
{
|
|
return SQLQueries.SQLQueryFactory.Get("GetDDLTriggers");
|
|
}
|
|
|
|
public void Fill(Database database, string connectionString)
|
|
{
|
|
if (database.Options.Ignore.FilterDDLTriggers)
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(connectionString))
|
|
{
|
|
conn.Open();
|
|
using (SqlCommand command = new SqlCommand(GetSQL(), conn))
|
|
{
|
|
command.CommandTimeout = 0;
|
|
using (SqlDataReader reader = command.ExecuteReader())
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
Trigger trigger = new Trigger(database);
|
|
trigger.Text = reader["Text"].ToString();
|
|
trigger.Name = reader["Name"].ToString();
|
|
trigger.InsteadOf = (bool)reader["is_instead_of_trigger"];
|
|
trigger.IsDisabled = (bool)reader["is_disabled"];
|
|
trigger.IsDDLTrigger = true;
|
|
trigger.NotForReplication = (bool)reader["is_not_for_replication"];
|
|
trigger.Owner = "";
|
|
database.DDLTriggers.Add(trigger);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|