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,忽略存在的数据,就可以添加不重复的记录。

你可以在插入之前,先到数据库里面查询一下是不是有重复。设置一个变量,可以设置一个数字型的,select

count(*)

into

:变量

from

where

主键

=

你插入的记录的主键值

(不知道c#这个语法怎么写,大体就是这个意思,把数据库里面主键和你插入相等的条数取出来),如果是0,就表示没有符合条件的记录,你可以执行插入,否则大于0(肯定是1),不执行。

create

trigger

a1_a

on

[dbo].[a1]

for

insert

as

insert

into

b.dbo.b1(g,h,j)

select

c

as

g,d

as

h,e

as

j

from

inserted

在a数据库a1表,加上面的触发器(只限于同一台服务器不通数据库数据转存),如果要在不同的服务器上,就先在a所在服务器上加链接服务器,触发器修改为:

create

trigger

a1_a

on

[dbo].[a1]

for

insert

as

insert

into

[server

name].b.dbo.b1(g,h,j)

select

c

as

g,d

as

h,e

as

j

from

inserted


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

原文地址:https://54852.com/bake/11812410.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存