【提问】插入数据前的查找重复,大家都是怎么做的【在线放分】

问题描述

在插入一个数据前,需要对数据库中是否存在进行判断比如:插入一个人员的信息,需要查看此人是否已经存在这样的一个过程是两次打开SQLCONNECTION吗?第一次:使用SELECT进行重复性检查第二次:进行插入操作大家都是这样操作的吗?

解决方案

解决方案二:
没错,就是这样做的~
解决方案三:
用存储过程就只需要一个了
解决方案四:
麦子,可以具体说一下吗对存储过程不熟悉
解决方案五:
不用存储过程也只需要一个.INSERTINTOtablename(key,otherfields,...)values(keyvalue,othervalues,...)WHERENOTEXISTS(SELECTkeyFROMtablenameWHEREkey=keyvalue)
解决方案六:
UP
解决方案七:
给表的字段建立唯一约束就可以了。
解决方案八:
楼主问的是插入前吧?不是插入时吧?
解决方案九:
用存储过程还是比较好的
解决方案十:
to:xs8577插入之前进行的判断防止出现重复的情况toxuyugen存储过程是不是就是把判断和插入,放在一起,实际上存储过程的内部也是先进行一个查询的判断,然后再进行一个插入的操作?
解决方案十一:
引用4楼bwangel的回复:

不用存储过程也只需要一个.INSERTINTOtablename(key,otherfields,...)values(keyvalue,othervalues,...)WHERENOTEXISTS(SELECTkeyFROMtablenameWHEREkey=keyvalue)

这个比较好
解决方案十二:
给你看个存储过程,就明白了CREATEprocadd_about(@Namevarchar(50),@iReturnintoutput)asselect*fromaboutswhereWebName=@Nameif(@@rowcount>0)beginset@iReturn=0--该值已存在,插入失败endelsebegininsertintoaboutsvalues(@Name)set@iReturn=1--插入成功endGO

解决方案十三:
引用11楼leehniu的回复:

SQLcode给你看个存储过程,就明白了CREATEprocadd_about(@Namevarchar(50),@iReturnintoutput)asselect*fromaboutswhereWebName=@Nameif(@@rowcount>0)beginset@iReturn=0--该值已存在,插入失败endelsebegininsertintoaboutsvalues(@Name)set@iReturn=1--插入成功endGO

一般这样写
解决方案十四:
引用11楼leehniu的回复:

SQLcode给你看个存储过程,就明白了CREATEprocadd_about(@Namevarchar(50),@iReturnintoutput)asselect*fromaboutswhereWebName=@Nameif(@@rowcount>0)beginset@iReturn=0--该值已存在,插入失败endelsebegininsertintoaboutsvalues(@Name)set@iReturn=1--插入成功endGO

解决方案十五:
打开一次SQLCONNECTION也可以啊先执行判断SQL,再根据结果执行插入SQL
解决方案:
using(SqlConnectionconn=newSqlConnection(SqlHelper.DBConnectionString{stringpd="selectIDfromtbwhereID=3";if(SqlHelper.ExecuteScalar(conn,CommandType.Text,pd)!=null){return-1;}else{returnSqlHelper.ExecuteNonQuery(conn,CommandType.Text,插入SQL);}}这样时要两此打开,但是这种方式还是可取的,当然你可以写成一条SQL语句,就是判断和插入SQL语句组合在一起,比如:ifexists(selectFormIDfromlcFormStylewhereFormID=2)insertintolcFormStyle...GO
解决方案:
写存储过程.
解决方案:
引用4楼bwangel的回复:

不用存储过程也只需要一个.INSERTINTOtablename(key,otherfields,...)values(keyvalue,othervalues,...)WHERENOTEXISTS(SELECTkeyFROMtablenameWHEREkey=keyvalue)

四楼正解,我们是用的这个

时间: 2024-10-25 11:22:24

【提问】插入数据前的查找重复,大家都是怎么做的【在线放分】的相关文章

【提问】插入数据后,如何获得编号【在线放分】

问题描述 插入一条数据到SQLSERVER当中数据表中的第一项是自动编号那么我们在插入数据后,如何获得这个生成的自动编号? 解决方案 解决方案二:selecttop1idfromtableorderbyiddesc解决方案三:http://topic.csdn.net/u/20080710/11/d1468a96-a8e4-4b68-a151-cd38541d7c68.html解决方案四:自动编号只增补渐吗?数据条目很多后,编号会出现循环的情况的吗?解决方案五:自动编号只增补渐吗?是的数据条目很

MVC+EF插入数据前先查询+再批量插入

问题描述 班级表学生表考试表成绩表班级表{id,班级名称}学生表{id,姓名,班级id}考试表{id,试题名称,班级id,时间}成绩表{id,考试id,学生id,总分}要的功能是点击保存插入考试表和成绩表页面控件------------------------------------------班级选择:下拉列表考试时间:文本框成绩list学生id(显示)总分文本框学生id(显示)总分文本框学生id(显示)总分文本框保存--------------------------------------

listview判断插入数据时是否有重复——分享我的思路,并且希望前辈指点进阶!

问题描述 新人报道,我来分享下我最近学习的一些自己的办法!(纯粹自己查看资料琢磨的,如有不成熟的地方,希望前辈们指出来!)首先我用listview数据绑定做了一个可以[查看编辑客户资料的页面]!但是我需要一个功能:当插入一个客户名字的时候,如果数据库已经有这个名字了,就要停止插入,然后有所提示!苦思冥想下,我在oniteminserting里面加入了判断代码~protectedvoidListView1_ItemInserting(objectsender,ListViewInsertEvent

java数组-顺序插入数据及二分法查找数据

顺序加入数组,是我自己想出来的. 而二分法这么简单的算法,我自己没有实践出来,还是看了一下书上代码之后,凭记忆写出来的. 可能有稍许不同,但不影响结果. 加油呀.要 class HighArray { private long[] a; private int nElems; public HighArray(int max) { a = new long[max]; nElems = 0; } public int size() { return nElems; } public int fi

mysql 数据表中查找重复记录_Mysql

复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name having count>1; 这个我在很早有发过一个asp下的ACCESS 的

【提问】文本处理的几个问题【在线放分】

问题描述 读入一个HTML文件到STRING当中例如:(HTML片段)<li><atarget="_blank"href="http://news.csdn.net/n/20080605/116517.html">鲍尔默当选福布斯全球最勤奋亿万富翁</a></li><li><atarget="_blank"href="http://news.csdn.net/n/2008

【提问】使用FILEUPLOAD控件上传文件的目录【在线放分】

问题描述 使用FILEUPLOAD上传文件,在saveas的时候要求存在的路径为已存在的目录但是如果需要目录动态创建怎么办?具体的说,就是如果一个目录中上传的文件数量达到100个,就新建一个目录,这样可以实现吗? 解决方案 解决方案二:System.IO.DirectoryInfodir=newSystem.IO.DirectoryInfo(Server.MapPath("~"));if(dir.GetFiles().Length>=1){dir.CreateSubdirecto

【提问】ASP.NET开发WEBSITE时添加自定义的类(CLASS)【在线放分】

问题描述 ASP.NET开发WEBSITE为其添加一个CLASS,提示添加到APP_CODE当中,自动生成了一个CS文件在这个文件中定义一个PUBLICCLASSmyclass在其中定一个成员函数publicstringteststr(stringstr)现在要在某个.ASPX.CS中使用这个类myclasstoy=newmyclass();toy.teststr(mystr);这样定义类和使用是否正确现在编译的时候出错Error12'myclss'doesnotcontainadefiniti

mysql view 视图表-mysql中插入数据的问题,在线等

问题描述 mysql中插入数据的问题,在线等 mysql中怎样向视图表中插入数据,或者是一条sql语句同时插入数据到多张物理表中,怎样实现,在线等?! 解决方案 视图插入数据是有一定的限制的,比如说有些视图带有sum/count的就不能从视图插入一条sql语句同时插入数据到多张物理表,这个可以用存储过程或触发器来做 解决方案二: MySql插入数据,中文乱码问题MySQL数据插入问题Mysql的longblob字段插入数据问题