このスレッドは以下のスレッド Trigger Windows Service when the new record insert in to DBCLR Trigger Support .Net 4.0は何かを私に明確にしてください。
の続きです私はDemo.Bからのコードは、すべての最初の、私は実行開始時に、私はいくつかの問題に直面しています
public partial class Triggers
{
// Enter existing table or view for the target and uncomment the attribute line
[Microsoft.SqlServer.Server.SqlTrigger(Name = "Trigger_Web", Target = "StoryItems", Event = "FOR INSERT")]
public static void Trigger_Web()
{
SqlCommand command;
SqlTriggerContext triggerContext = SqlContext.TriggerContext;
SqlPipe pipe = SqlContext.Pipe;
SqlDataReader reader;
if (triggerContext.TriggerAction == TriggerAction.Insert)
{
using (SqlConnection connection = new SqlConnection(@"context connection=true"))
{
connection.Open();
command = new SqlCommand(@"SELECT * FROM StoryItems", connection);
reader = command.ExecuteReader();
reader.Read();
// get inserted value
string Name;
string Location;
Name = (string)reader[1];
Location =(string)reader[2];
reader.Close();
//try
//{
// // try to pass parameter to windows service
// //WindowsService param = new WindowService(Name, Location);
// //Do something if it pass
//}
//catch (Exception ex)
//{
//}
// Replace with your own code
SqlContext.Pipe.Send("Trigger FIRED");
}
}
}
}
を示唆してしまった、それは私に変更を依頼します4.0からより低いバージョン(バージョンを3.5のプロパティに変更)
私はそれがうまく動作しないと踏み込もうとすると、いつも展開が成功し、出力ウィンドウに「Canceled by User」と表示されます。後ろのシーンで何が起こっているのかは分かりません。
新しい行が挿入されたときに実行して結果を表示する方法を教えてください。
をサポートしていない - それは、テーブル全体の内容を読み取ろうとし、そのテーブルからランダムに一つの行を選択し、値を割り当てますその行から 'Name'と' Location'へのカラム1と2の値を返します。たとえあなたが新しく挿入された行を読み込んでいたとしても、挿入が複数の行を生成し、トリガーが1回だけ起動されるという事実は説明していません。 –