sql-server - 将触发器复制行插入另一个重复表 SQL Server 2008

标签 sql-server sql-server-2008 triggers insert

概述:尝试为 SQL Server 2008 数据库编写触发器。 TableATableB 具有相同的架构。

目标:在插入 TableA 时,将该行中的所有内容复制到 TableB 中的新行

到目前为止的注释:

使用this question我设法完成了大部分工作,但后来遇到了一个问题

Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.

我只有文本列,但我也想复制它们。

我找到了this website这似乎有一个解决方法,但是,它正在更新,并且我无法将其应用到我的插入示例中...

有什么想法吗?

编辑:目的是向现有产品添加功能,遗憾的是我无法更改 TableA 的架构。

最佳答案

我不确定为什么您不能使用链接到的示例。它应该很简单:

CREATE TRIGGER T_TableA_I
on TableA
after insert
as
    set nocount on

    insert into TableB (ColumnA,ColumnB,/* Columns in table b */)
    select a.ColumnA,a.ColumnB, /* Columns from table a */
    from
        TableA a
            inner join
        inserted i
            on
                a.PKColumn1 = i.PKColumn1 and
                a.PKColumn2 = i.PKColumn2 /* Primary Key columns from table A */

当然,您的问题不包含任何表定义,因此上面的内容需要进行大量修改。希望您能够从上面的评论中找出要添加/删除的内容。

关于sql-server - 将触发器复制行插入另一个重复表 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796696/

相关文章:

sql - SUM 分钟 SQL 服务器

c# - 您可以在 SSIS 中重复使用代码吗?你能以编程方式更改源/目标吗?

sql-server - 有没有办法在 SQL Server 2008 中直观地显示数据库图表中的 View ?

sql-server - 如何在 SQL Management Studio 中扩展事件文件选项卡名称?

ios - 如果设备被锁定,CADislayLink 不会触发

mysql - 在 MySQL 5.6.27 中创建触发器时出现奇怪的错误

sql-server - 当没有事件连接时,SqlConnection.OpenAsync() 挂起

sql-server - 如何让一个事务覆盖多个存储过程?

mysql - 这个用于排名的 MySQL 触发器有什么问题?

sql-server - 将数据从 Azure SQL 数据库 ETL 到 Azure SQL 数据仓库的推荐工具?