【问题标题】:Create a trigger to update from one column to another databases column创建触发器以从一列更新到另一数据库列
【发布时间】:2021-06-02 17:34:17
【问题描述】:

我正在尝试创建一个触发器以从一个列更新到另一个数据库列,这就是我目前所拥有的。它一直在失败。源数据库Gamecp,表gamecp_gamepoints,列user_points。我想复制到数据库Billing,表UserStatus,列cash

CREATE TRIGGER [dbo].[gamepoints] 
ON [dbo].[gamecp_gamepoints]
AFTER INSERT
AS
BEGIN
    DECLARE @cash int;

    INSERT INTO BILLING.dbo.tbl_UserStatus 
        SELECT * 
        FROM Gamecp.gamecp.gamepoints  

    VALUES (@cash,);

【问题讨论】:

  • 对不起戴尔价值现金 int
  • 我正在尝试使用触发器复制添加到 gamecp_gamepoits 列 user_points 值的任何新数据点浮动到另一个数据库 Billing table UserStatus column cash int
  • 好吧 Dale 我会告诉你我已经做了大约 25 年 VMWare 构建服务器等,当程序员来找我遇到服务器问题时,我告诉他们去阅读手册 LOL如果您不知道在此线程上什么也不说,如果我知道我会在这里,因为我不是 DBA,这就是我来这里寻求帮助的原因。坚持你的手册
  • 感谢您的回复,这并不能解决我所有的问题思考。那好吧

标签: sql sql-server tsql triggers


【解决方案1】:

要在 SQL Server 上使用触发器,您必须了解 Inserted and Deleted pseudo-tables,因为您可以使用它来检测已更改的内容。在您的情况下,哪些行是新的。

然后通过添加要插入的列并选择要插入的值来修复您的插入,它应该可以工作。

虽然我怀疑您可能想要插入其他列?但这没有具体说明。

CREATE TRIGGER [dbo].[gamepoints] 
ON [dbo].[gamecp_gamepoints]
AFTER INSERT
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO BILLING.dbo.tbl_UserStatus (cash)
        SELECT user_points
        FROM Inserted;
END;

【讨论】:

  • 谢谢 Dale 我实际上能够创建一个触发器,但是我没有使用你解释的逻辑,这是不行的,我会使用你的建议,感谢你的时间。
猜你喜欢
  • 1970-01-01
  • 2018-01-16
  • 2017-05-17
  • 1970-01-01
  • 2021-09-17
  • 2017-01-20
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多