如何在 SQL 数据库中插入数据而不重复

How to insert data in SQL database without duplicates

我有一个 SQL 服务器数据库:

database 1 database 2
A A
B B
C C

出于备份原因,这将被插入到一个新的数据库(此处为数据库 2)中。 插入后,我的数据库 1 将收集新数据,但也会将旧数据保留几天。所以下一个小时程序运行另一个插入。我不想让ABC再次存储在数据库2中。这次需要添加D E:

database 1 database 2
A A
B B
C C
D D
E E

这是一个不应该的例子:

database 1 database 2
A A
B B
C C
D A
E B
C
D
E

执行此操作的最佳方法和最快方法是什么?我目前在 C# 中使用 SQL 数据库和 ADO.NET。

使用连接到 SQL Server Express 的 visual Studio 中的 SQL 创建者:

CREATE TABLE [dbo].[MBR] 
(
    [Id]          INT IDENTITY (1, 1) NOT NULL,
    [TimeStamp]   DATETIME     NOT NULL,
    [TAG]         VARCHAR(80)  NOT NULL,
    [Value]       VARCHAR(45)  NOT NULL,
    [Description] VARCHAR(128) NULL,

    PRIMARY KEY CLUSTERED ([Id] ASC)
);

如果我对你的理解正确,那么你有数据库 1(用于 API 或其他东西的数据库)和数据库 2(备份数据库)。当您备份了一条记录后,您不想再次备份它。

你是如何进行清理和复制的?如果这是一个程序,您可以考虑在数据库 1 中添加一个名为“IsBackedUp”的额外字段。如果您已经备份了这条记录,您可以在此处存储一个布尔值,只需将其切换到正确的状态即可。

如果让数据库通过查询进行备份。然后你可以在你的 where 语句中写一个子查询来检查记录是否已经存在。

根据项目的大小,我建议制作一个清理程序来清理数据和备份。在我看来,对于可以处理大量数据并让您更好地控制备份内容和不备份内容的软件来说,这是一个很好的功能。清洁也一样。