您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何防止将重复数据插入SQL Server表中?

如何防止将重复数据插入SQL Server表中?

首先,可以通过使用唯一索引或约束来防止表中出现重复项。索引/约束可以工作 在演唱会 与下面的建议。如果 使用唯一索引而不是以下解决方案之一,则插入重复记录将引发错误,而您将需要在另一端进行处理。

另外,我可能会通过一个存储过程来插入数据,该存储过程检查该行是否已经存在。为此,您可以使用 语句,如下面的伪代码所示:

create procedure MyProcedure
(
    @Name nvarchar(100),
    ...
)
as

merge MyTable
using
(
    select @Name,...
) as source (Name, ...)
on MyTable.Name = source.Name
when not matched then
    insert (Name,...) values (source.Name,...)
when matched then
    update set Name = @Name,...

或者,您可以检查记录是否存在并手动插入或更新:

create procedure MyProcedure
(
    @Name nvarchar(100),
    ...
)
as

    if not exists (select * from MyTable where Name = @Name)
    begin
        insert into MyTable (Name,...) values (@Name,...)
    end
    else
    begin
            update MyTable
            set ...
            where Name = @Name
    end
SQLServer 2022/1/1 18:38:06 有464人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶