SQL~用insert语句添加数据不能和已有的重复

SQL~用insert语句添加数据不能和已有的重复,第1张

INSERT INTO persion_results( PName , Dossol , LJID , Ptype , PWorker , StartTime , FinishTime1 , scoreTime , Availability , RLineStr , ReDate , ReTime , C_ID ) SELECT PName , Dossol , LJID , Ptype , PWorker , StartTime , FinishTime1 , scoreTime , Availability , RLineStr , ReDate , ReTime , C_ID FROM temp_persion_results WHERE LJID NOT IN (SELECT LJID FROM persion_results)

select 1 from temp_persion_results where temp_persion_results.LJID='00052'

还有更简单的方法:先在插入表中创建唯一索引,可以是一袜耐个字段,也可以是多个轿好哪字段聚合。在插入语句中使用insert ignore into,忽略闭码存在的数据,就可以添加不重复的记录

表table1(A, B),A列是主键,B是你说的关樱氏键字段。

假设你要插入一条新记录(a1, b1):

/* 判断数据库中是否有B=b1的记录 */

// 此sql语句取出数据脊槐散库中所有B=b1的记录

string sql = "SELECT * FROM table1 WHERE B=b1"

SqlCommand cmd = new SqlCommand(cmd, sqlconnection)

// 运行sql语句,并获得明册结果集

ResultSet rs = cmd.exec()

if (rs.next()) {

// rs存在记录,不要插入

} else {

// rs不存在记录,即数据库中没有B=b1的项,可以插入。

}

不记得C#的类名了,以上代码希望能达意

在插入某个表的时候,有时候会遇到目标表中有重复的情况,在不考虑性能的情况下,用下面的SQL最为简扒肢单基本思想是用零时表存储中间数据,然后把临时表中和目标表重复的删掉,再绝此带将临时表的插入...此方法并芦不考虑效率create proc dbo.dt_insertCourse@nj varchar(8) = ''asset nocount onSELECT tblStudentInfo.persNo AS persNo, tblCSinfo.CourseID AS CourseID, 0 AS Marks,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11982963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存