数据库判断问题哪种好?

livesoft 2010-05-10 05:25:56
添加一笔数据,表字段(a,b,c)
c字段相同数据不允许存在相同的a和b.首先判断a,有相同的提示不能添加,再判断b,有相同的提示不能添加
判断的时候
是添加的时先查询数据库判断是否已经存在数据,再根据查询的结果看是否能添加;
还是直接在存储过程里判断能不能添加好一些。

感觉第一种要添加一笔记录要连接3次数据库是不是效率比第2种低??
...全文
73 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
livesoft 2010-05-11
  • 打赏
  • 举报
回复
谢谢各位,6楼没明白我的意思,a,b列是可以有重复值的。是当C相同时,a和b不能重复
捷哥1999 2010-05-10
  • 打赏
  • 举报
回复
设置a、b列的Unique=true,要求唯一值。

然后直接插入

try
{
//直接插入
}
catch(Exception e)
{
//提示错误!
}
wuyq11 2010-05-10
  • 打赏
  • 举报
回复
if not exists (select * from tb where ID=@ID)
begin
end
多个条件存储过程
事务
changjin642 2010-05-10
  • 打赏
  • 举报
回复
当然是存储过程速度快了,主要看数据量大小。数据量小多次连接对效率影响应该不大。
codeingsky 2010-05-10
  • 打赏
  • 举报
回复
存储过程里判断效率高
if not EXISTS(select * from 表 where a=...)


多次连接数据库当然不是个好选择
gxingmin 2010-05-10
  • 打赏
  • 举报
回复
存储过程里效率高些
if not EXISTS(select * from 表 where a=...)
...
Xiaoyuan245437 2010-05-10
  • 打赏
  • 举报
回复
直接在存储过程里 `

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧