向Access插入数据,如果存在就不插入,如果不存在就插入,帮我看看下面的语句那里错了?

INSERTINTO[TempSplider]([Url])select@Urlfrom[TempSplider]WHEREnotexists(select([Url])... INSERT INTO [TempSplider] ([Url]) select @Url from [TempSplider] WHERE not exists (select ([Url]) from [TempSplider] where Url=@Url),执行第一条的时候没有错,可执行第二条的时候就插入两条,执行第三条的时候插入四条。我该如何改正呢? 展开
 我来答
doreen_33
2012-06-07 · TA获得超过957个赞
知道小有建树答主
回答量:392
采纳率:100%
帮助的人:143万
展开全部
你可以将几个可确定唯一性的字段设置为主键,就可以保证不重复插入的,
你这句子最好改成判断
if (select count([Url]) from [TempSplider] where Url=@Url)=0
begin
INSERT INTO [TempSplider] ([Url])
values(@Url)
end
追问
效果是一样的,但是我上面的语话应该也是对的。我再试试,不行的话只能用像你这样写了。
追答
你这语句会出现插入逐渐增多,会不会是因为语句中判断的不存在Url=@Url的信息,这部份内容既包含当前要插入的,也包含表中已有的不等於@Url 的信息,所以你每次都会将重复
kmhzs
2017-10-23
知道答主
回答量:66
采纳率:0%
帮助的人:13.5万
展开全部
insert into tt(字段1, 字段2)
 select distinct 数据1, 数据2 from tt 
 where not exists(SELECT * FROM TABLE WHERE 字段1 = 数据1 and 字段2 =  数据2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式