如何检测使用ExecuteNonQuery创建的触发器

时间:2016-02-10 13:37:33

标签: c# sql-server tsql

我有以下命令在数据库中创建触发器

command.ExecuteNonQuery();

触发器已成功创建。但是如何在执行命令时检测是否已创建它?

到目前为止,我设法执行分离的命令,检查数据库中是否存在触发器,但我需要检查它是否在创建时。

string insert =  " CREATE TRIGGER TraNag_UpdateInsertOpis ON dbo.TraNag"
+ " FOR INSERT,UPDATE"
+ " AS"

+ " DECLARE @OpisInsert varchar(1024)"
+ " DECLARE @TrnSymbolInsert varchar(40)"

+ " select @TrnSymbolInsert = TrN_Symbol, @OpisInsert = Trn_Opis from inserted "

+ " IF (@TrnSymbolInsert = 'MMW')"
+ " BEGIN"
+ " IF NOT EXISTS("
+ " SELECT Mag_Symbol"
+ " FROM dbo.Magazyny"
+ " WHERE Mag_Symbol like @OpisInsert"
+ " )"
+ " BEGIN"
+ " RAISERROR('Error NOT FOR STACKOVERFLOWWWW !!! : %s', 16, 1, @OpisInsert);"
+ " END END";

1 个答案:

答案 0 :(得分:2)

只需检查之前和之后在运行ExecuteNonQuery之后是否存在触发器。这将检测是否已经创建了触发器,或者是否根据您的命令创建了触发器。