如何使用 SQL Query 在 SQL Server 中的表级别进行镜像或复制

Posted

技术标签:

【中文标题】如何使用 SQL Query 在 SQL Server 中的表级别进行镜像或复制【英文标题】:How to do mirroring or replication in table level in SQL Server with SQL Query 【发布时间】:2021-11-26 13:54:48 【问题描述】:

将一行从一个表插入到第二个数据库的另一个表中

 Insert into Task1.dbo.Patients (FirstName, Lastname, Address, ContactNo,Gender,DateOfBirth )
  Select FirstName, Lastname, Address, ContactNo,Gender,DateOfBirth from Tasks.dbo.Patients

我想在另一个数据库中存在的类似表中仅插入 插入的行 的副本。 Insert Into 是一种选择,但它会从源表中复制整个数据并附加到目标表中。 我想在插入另一个数据库时只镜像一行。

【问题讨论】:

【参考方案1】:

您可以为此使用简单的触发器

CREATE TRIGGER tr_Patients_Tasks1Copy ON dbo.Patients AFTER INSERT
AS

SET NOCOUNT ON;

IF EXISTS (SELECT 1 FROM inserted)
    INSERT Task1.dbo.Patients
      (FirstName, Lastname, Address, ContactNo, Gender, DateOfBirth)
    SELECT FirstName, Lastname, Address, ContactNo, Gender, DateOfBirth
    FROM inserted i;

GO

注意插入的表可能有多行甚至零行

【讨论】:

以上是关于如何使用 SQL Query 在 SQL Server 中的表级别进行镜像或复制的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JSTL sql:query 访问重复的列名?

如何使用pivot Sql Query在0中转换Null值

如何使用基于 SQL Query 的连接在 C# 中编写 LINQ?

如何一次添加多个 sql_query 绑定?

如何在 Big Query 的标准 SQL 中使用通配符为特定分区查询多个表

如何在 Typo3 版本 10 ($GLOBALS['TYPO3_DB']->sql_query()) 中执行普通 SQL?