向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),执行第一条的时候没有错,可执行第二条的时候就插入两条,执行第三条的时候插入四条。我该如何改正呢?
展开
2个回答
展开全部
你可以将几个可确定唯一性的字段设置为主键,就可以保证不重复插入的,
你这句子最好改成判断
if (select count([Url]) from [TempSplider] where Url=@Url)=0
begin
INSERT INTO [TempSplider] ([Url])
values(@Url)
end
你这句子最好改成判断
if (select count([Url]) from [TempSplider] where Url=@Url)=0
begin
INSERT INTO [TempSplider] ([Url])
values(@Url)
end
追问
效果是一样的,但是我上面的语话应该也是对的。我再试试,不行的话只能用像你这样写了。
追答
你这语句会出现插入逐渐增多,会不会是因为语句中判断的不存在Url=@Url的信息,这部份内容既包含当前要插入的,也包含表中已有的不等於@Url 的信息,所以你每次都会将重复
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询