Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 触发器-insert into@table select from inserted,如果@rowcount>;来自@table的0_Sql Server_Tsql_Triggers_Rowcount - Fatal编程技术网

Sql server 触发器-insert into@table select from inserted,如果@rowcount>;来自@table的0

Sql server 触发器-insert into@table select from inserted,如果@rowcount>;来自@table的0,sql-server,tsql,triggers,rowcount,Sql Server,Tsql,Triggers,Rowcount,在插入、更新后,我在表a上有一个触发器。在insert时,当条件正确时,信息被插入到表变量中,如果从select恢复了某些内容,则执行一个过程 如果@ds为空,则不执行该过程。有什么建议吗 我试过这个,但没用: .... SET @dif = (SELECT ISNULL(COUNT(*), 0) FROM @ds); IF @dif > 0... 谢谢 CREATE TRIGGER t_tablaA ON tablaA AFTER INSERT, UPDATE AS BEGIN

在插入、更新后,我在表a上有一个触发器。在insert时,当条件正确时,信息被插入到表变量中,如果从select恢复了某些内容,则执行一个过程

如果
@ds
为空,则不执行该过程。有什么建议吗

我试过这个,但没用:

....
SET @dif = (SELECT ISNULL(COUNT(*), 0) FROM @ds); 

IF @dif > 0...
谢谢

CREATE TRIGGER t_tablaA
ON tablaA
AFTER INSERT, UPDATE
AS
BEGIN
    DECLARE @ds TABLE (d VARCHAR(50));
    @who VARCHAR(MAX);

    INSERT INTO @ds
        SELECT p.email
        FROM inserted
        INNER JOIN personel p ON inserted.user = p.user

    IF @@rowcount > 0
       SELECT @who = COALESCE(@who , '')  + d + '; ' 
       FROM @ds

    EXECUTE sendEmailTo(@who);
END;

您可能缺少
BEGIN。。结束

if @@rowcount > 0
BEGIN
 select @who = COALESCE(@who , '')  + d + '; ' FROM @ds;
 execute sendEmailTo(@who);
END;
或:


请注意,使用变量
@who=COALESCE(@who,,)
进行仿真可能会导致未定义的行为(特别是在使用
ORDER BY
时)


另一件事:从触发器发送电子邮件可能会导致性能问题。触发器应该执行“简单”操作,并且不访问外部系统。

您可能缺少
BEGIN。。结束

if @@rowcount > 0
BEGIN
 select @who = COALESCE(@who , '')  + d + '; ' FROM @ds;
 execute sendEmailTo(@who);
END;
或:


请注意,使用变量
@who=COALESCE(@who,,)
进行仿真可能会导致未定义的行为(特别是在使用
ORDER BY
时)


另一件事:从触发器发送电子邮件可能会导致性能问题。触发器应该做“简单”的动作,不访问外部系统。< /P> @ USER 3535302请考虑接受我的回答():@ USER 3535302,请考虑接受我的回答():