Я написал триггер clr всякий раз, когда новый файл вставляется в мою таблицу, а затем передаю значение моей службе WCF, теперь мне нужно изменить процесс, чтобы «обновлять» только конкретный столбец, который обновляется, тогда мне нужно тянутьзначение из двух других таблиц.
Мне просто интересно, так или иначе, я могу запустить триггер clr только для обновления определенного столбца?
Сценарий, подобный этому
Таблица1: Данные клиента (Cust.No, Cust.Name, Desc)
Таблица 2: Адрес (DoorNo, Street, City, State).
Вот что я пытаюсь сделать, если "Desc"столбец в Table1 обновляется, затем запускается триггер clr и передаются все значения в Table1 и Table2 на основе «Desc».
Вот мой код для вставки:
[Microsoft.SqlServer.Server.SqlTrigger(Name = "WCFTrigger",Target = "tbCR", Event = "FOR UPDATE, INSERT")]
public static void Trigger1()
{
SqlCommand cmd;
SqlTriggerContext myContext = SqlContext.TriggerContext;
SqlPipe pipe = SqlContext.Pipe;
SqlDataReader reader;
if(myContext.TriggerAction== TriggerAction.Insert)
{
using (SqlConnection conn = new SqlConnection(@"context connection=true"))
{
conn.Open();
//cmd = new SqlCommand(@"SELECT * FROM tbCR", conn);
cmd = new SqlCommand(@"SELECT * FROM INSERTED", conn);
reader = cmd.ExecuteReader();
reader.Read();
//get the insert value's here
string Cust.No, Cust.Name,Desc;
Cust.No = reader[0].ToString();
Cust.Name = reader[1].ToString();
Desc = reader[2].ToString();
myclient.InsertOccured(Cust.No, Cust.Name,Desc);
reader.Dispose();
}
}
}