在sql中插入表时避免重复记录 [英] avoid duplicate records while inserting a table in sql

查看:85
本文介绍了在sql中插入表时避免重复记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不太了解sql所以请帮助我,我需要在sql中插入表时避免重复记录







以下是我的代码







ALTER程序[dbo]。[sp_InsertBankName]


@bankname as varchar(50)

,@ banknamea as nvarchar(50)



as

开始

声明@bankid为varchar(10)

select @ bankid = isnull(max(convert(int,bankid)),0)+1来自bankname

插入到bankname

(bankid,bankname,banknamea)

值(@ bankid,@ bankname,@ banknamea)

结束

Hi, I am a not much aware of sql so please help me ,I need to avoid duplicate records while inserting a table in sql



Here is my code below



ALTER procedure [dbo].[sp_InsertBankName]
(
@bankname as varchar(50)
,@banknamea as nvarchar(50)
)
as
begin
declare @bankid as varchar(10)
select @bankid=isnull(max(convert(int,bankid)),0)+1 from bankname
insert into bankname
(bankid,bankname,banknamea)
values (@bankid,@bankname,@banknamea)
end

推荐答案

尝试以下修改后的代码:



try below modified code :

alter procedure [dbo].[sp_InsertBankName]
(
    @bankname as varchar(50)
    ,@banknamea as nvarchar(50)
)
as
begin
    declare @bankid as varchar(10)
    declare @bCount as int

    select @bCount = count(bankname) from bankname where bankname = @bankname

    if @bCount = 0
    begin
        select @bankid=isnull(max(convert(int,bankid)),0)+1 from bankname
        insert into bankname
        (bankid,bankname,banknamea)
        values (@bankid,@bankname,@banknamea)
    end
end


在您的表bankname中生成 BankId Primarykey Autoincreament

In your table bankname Make BankId Primarykey and Autoincreament
ALTER procedure [dbo].[sp_BankName]
 (
 @BankId as int,
 @bankname as varchar(50),
 @banknamea as nvarchar(50)
 )
 as
 begin

    if exists(select * from bankname where bankid=@BankId) 
    begin
        insert into bankname(bankname,banknamea)
                    values (@bankname,@banknamea)
    end
    else
    begin
        Update bankname set bankname=@bankname, banknamea=@banknamea where bankid=@bankid
    end
end

<代码中的


而新记录传递bankid 0 当更新传递值
> bankid 记录您正在更新

快乐编码!

:)


in code,
while new record pass bankid 0 it will insert record
when update pass value of bankid which record you are updating
Happy Coding!
:)


嗨...



首先从该t中选择所有记录现在你将比较数据集中的特定字段(基于用户名或密码的方式),当点击插入按钮时 - 如果该记录存​​在则显示错误,否则显示错误插入cmd是执行。

在这种情况下,重复的值会被条件消除。



谢谢你
Hi...

First select all records from that table, put into a datatable or dataset.
Now u will compare a particular field(means based on-username or password) from dataset,when click insert button - if that record is exists display an errmsg otherwise insert cmd is excute.
In this case duplicate values are eliminated by condition.

thank u


这篇关于在sql中插入表时避免重复记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆