永发信息网

sqlserver存储过程防止字段插入重复

答案:2  悬赏:20  手机版
解决时间 2021-04-09 20:07
我下面这个很垃圾,不过贴出来有样品改可能就好改了。
意思就是某一字段用存储过程防止重复插入,如果有重复,就提示错误。
有兴趣的帮我改改吧,谢谢了
create procedure insert_pig(@a varchar(50))
on admin
instead of insert
AS
begin
declare @qty int
select @qty =count(*) from admin where username=@a
if qty>1
raiserror('该品种已经存在',16,8)
rollback tran
end
GO
最佳答案
你建表的时候为什么不把那列弄成唯一约束?

create procedure insert_pig
@str varchar(6), --定义一个输入参数,就是那个是不是重复的值
@str1 char(2)
--把每一列弄成变量存入,不知你的表有几字段,这里我就以两个字段为例
as

declare @sum int
begin tran

insert into admin (列1,列2) values (@str,@str1)
select @sum=count(*) from admin where username=@str

if(@sum>0)

begin
raiserror('该品种已经存在',16,8)
rollback tran --滚回事务

end

else

commit tran --提交事务
GO

--调用存储过程
exec insert_pig '张三','男'

----张三,男就是传入的参数,也就是张三赋值给了@str,男赋值给了@str1

觉得可以给加加分吧
全部回答
示例: create proc p_test ( @phone varchar(20), --输入参数:手机号 @result smallint output --输出参数:0 手机号长度正常;1 手机号异常 ) as declare @len int set @len=len(@phone) if @len=11 begin set @result=0 print '手机号长度正常' end else begin set @result=01 print '手机号异常' end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
tst活酵母适合什么年龄阶段
雷嗨宾斗啊是什么意思,广东话(雷还宾斗)是
某铁的氧化物的化学式为FeXO3,该氧化物的相
一个标有“220V 100W”的灯泡,它的灯丝电阻
Bochs添加网卡的方法
耕王拖拉机东风哪个好,1500马力以上拖拉机哪
如图所示的几何体从左面看到的形状图是A.B.C.
三桥大型榨油地址有知道的么?有点事想过去
假如让你选老婆,一个是丑,胖,但是家里特有
请问什么是对称密码?
柯哀lie or love
单选题下列对于新中国成立后开展的土地改革运
慎大招怎么取消,在LOL中,慎的大怎么样能自己
有国药准字的5%葡萄糖氯化钠算人用药吗? 可
青未了茶坊地址有知道的么?有点事想过去
推荐资讯
德云社里的流氓多,流氓头子他姓郭是那段台词
微软的平板RT,怎么密码锁了等不进去老显示,
校园搞笑三句半台词,求一段非常搞笑的三句半
我老婆的网名叫桃夭我该起个什么网名好呢?急
潭中鱼可百许头,皆若空游无所依。日光下彻,
途家斯维登度假公寓(祥泰汇东国际)在哪里啊,
请问黑龙江民族职业学院的宿舍条件
Don’t forget to lock the door if you are
一句暴雨唯美句子,形容暴雨水的句子
单选题一辆汽车正在平直的公路上匀速行驶,下
最近笔记本电脑ie等浏览器用一段时间颜色发黄
姓名测试打分到底准不准啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?