【问题标题】:Trigger on insert for a specific colum SQL SERVER为特定列 SQL SERVER 插入时触发
【发布时间】:2014-10-07 13:05:48
【问题描述】:

我试图在主表中插入和插入时在不同的表中进行制作和更新,我想在付款来自贝宝时执行此操作,因此在该列中我们可以读取 Paypal 或 Visa。

Table1transactions
OrderID PaymentType  Name   LastName 
1       Paypal       NULL    NULL
2       Visa         Jhon    Mercury

Table2orders Main Table
OrderID CustomerID Payment Type
1         1001       Paypal
2         2002       Visa

Table3users
CustomerID   Name    Lastname
1001         Quenn   AC/DC
1002         Jhon    Mercury

RDBMS 是 Windows 上的 SQL SERVER。

我会尽量解释清楚:

当一个人用 Paypal 购买东西时,这会在 table2 中创建一行,但它不会在 table1 上填充我们需要管理订单的名称和更多详细信息,签证插入不会发生这种情况,因为不同proccess,所以我创建了一个 SQL 语句来更新 table1 并与表 3 上的数据同步,现在我们可以看到 Paypal 客户的订单详细信息。 我想为插入的每一行在 table2 上创建一个触发器,我不知道如果 Table2.PaymentType='Paypal' 执行更新 table1 ......你是否可以创建一个读取新行的验证 tigrer 别的什么都没有……

您知道如何或最好的方法吗?目前我正在手动运行更新,但我想找到一个解决方案,如计划或触发器。

希望现在很容易理解。对不起,我的英语不是最好的......

谢谢!

【问题讨论】:

  • 您的帖子肯定缺少帮助您所需的最基本信息。没有关于所涉及的数据结构的详细信息,你甚至没有提到 rdbms。
  • 我更改了解释,希望对您有所帮助,对不起,我是新来的,我的英语不是最好的:S

标签: sql triggers insert


【解决方案1】:

你可以试试这个代码

CREATE TRIGGER trigger_name
AFTER INSERT
   ON table_name FOR EACH ROW

BEGIN

   -- variable declarations

   -- trigger code

END;

【讨论】:

  • 感谢塔伦,
  • 感谢 Tarun,但我知道这样做,我不知道该怎么做是如何过滤 paymentType 以仅进行更新。目前我有这样的事情:update table1 set name lastaname where table1.orderid=table2orderid and table2.customerid=table3.customerid and table2.paymenttype='Paypal' 所以我想在触发器中过滤类似,如果 paymenttype= 'Paypal' 更新........ [其他] 不要什么都不做。这是我不知道该怎么做的事情。你能帮忙吗?
【解决方案2】:
CREATE TRIGGER trigger_name
AFTER INSERT
   ON table_name FOR EACH ROW

BEGIN

   -- variable declarations

   -- trigger code

END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多