Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在IF条件内创建触发器?_Sql Server_Sql Server 2008_Triggers - Fatal编程技术网

Sql server 如何在IF条件内创建触发器?

Sql server 如何在IF条件内创建触发器?,sql-server,sql-server-2008,triggers,Sql Server,Sql Server 2008,Triggers,我正在尝试在表上创建触发器。我的要求是仅在表存在时创建触发器 e、 g 在谷歌搜索之后,我发现createtrigger应该是批处理中的第一个命令。 这意味着我不能使用当前批次中的if或任何其他东西 请帮帮我 只需单独使用CREATETRIGGER语句即可 如果没有表,它不会对数据库做任何事情,只需给出一条错误消息。不会发生什么坏事。您可以使用 IF(OBJECT_ID('YourTable','U') IS NOT NULL) EXEC('CREATE TRIGGER ....')

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

e、 g

在谷歌搜索之后,我发现
createtrigger
应该是批处理中的第一个命令。 这意味着我不能使用当前批次中的
if
或任何其他东西


请帮帮我

只需单独使用CREATETRIGGER语句即可

如果没有表,它不会对数据库做任何事情,只需给出一条错误消息。不会发生什么坏事。

您可以使用

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

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

在插入后在DoesNotExist上创建触发器Foo,选择1
返回错误
对象“DoesNotExist”不存在或对此操作无效。
@MartinSmith,是的,它当然存在。但是没有什么坏事发生。你想要的不是触发器。你得到的不是扳机。如果有一个表,你想要的是一个触发器,你得到的是一个触发器。问题已解决。除部署脚本外,还有大量虚假错误,您需要检查这些错误是否符合预期。@MartinSmith:谢谢您的回答。@Ben:如果与其他脚本结合使用,将中断执行。
IF(OBJECT_ID('YourTable','U') IS NOT NULL)
    EXEC('CREATE TRIGGER ....')