如何在IF条件下创建触发器?

时间:2012-09-18 10:55:42

标签: sql-server sql-server-2008 triggers

我正在尝试在桌面上创建触发器。我的要求是仅在表存在时才创建触发器。

e.g。

if(table exists)
        begin
             create trigger on the table 
        end 

谷歌搜索后,我发现create trigger应该是批处理中的第一个命令。 这意味着我无法在当前批次中使用if或任何其他内容。

请帮帮我!

2 个答案:

答案 0 :(得分:5)

您可以使用

IF(OBJECT_ID('YourTable','U') IS NOT NULL)
    EXEC('CREATE TRIGGER ....')

您需要通过将它们加倍来转义触发器主体中的任何单引号。

答案 1 :(得分:0)

只需使用create trigger语句就可以了。

如果没有表,它将不会对数据库执行任何操作,只需提供错误消息。什么都不会发生。