动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条

chilli6519 2014-10-21 10:30:48

已知一个表 table

里面有两个字段 A1 和 A2

如何用动态语句 判断 A1 = A , A2=B 的数据是否存在,如果不存在,就添加一条数据, A1 = A , A2 = B

谢谢
...全文
4953 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yole 2014-10-21
  • 打赏
  • 举报
回复
把跟出来的语句发一下。
Tiger_Zhao 2014-10-21
  • 打赏
  • 举报
回复
数据已存在就不添加,这不是你的目的吗!
你把子查询部分执行一下,可以验证的。
chilli6519 2014-10-21
  • 打赏
  • 举报
回复
引用 7 楼 u010192842 的回复:
[quote=引用 6 楼 chilli6519 的回复:] [quote=引用 3 楼 u010192842 的回复:] A和B是值还是参数呢? 是‘A’和‘B’这样的值的话,1楼可行。 要是参数的话,就得用过程了,或者程序拼语句。
参数可以用 string.format 拼接[/quote] 1楼的方法,把A和B替换成 string.format 拼的字符串[/quote] 一楼的测试了,没有提示错误,但数据没有添加
Yole 2014-10-21
  • 打赏
  • 举报
回复
引用 6 楼 chilli6519 的回复:
[quote=引用 3 楼 u010192842 的回复:] A和B是值还是参数呢? 是‘A’和‘B’这样的值的话,1楼可行。 要是参数的话,就得用过程了,或者程序拼语句。
参数可以用 string.format 拼接[/quote] 1楼的方法,把A和B替换成 string.format 拼的字符串
chilli6519 2014-10-21
  • 打赏
  • 举报
回复
引用 3 楼 u010192842 的回复:
A和B是值还是参数呢? 是‘A’和‘B’这样的值的话,1楼可行。 要是参数的话,就得用过程了,或者程序拼语句。
参数可以用 string.format 拼接
还在加载中灬 2014-10-21
  • 打赏
  • 举报
回复
我有印象了~ 遇到这种避免重复插入的 可以先把要插入的数据都存在临时表里, 插入时加where not exists(...)判断. 这样多进程并发执行也不会插入重复值.
insert into 表([字段列表])
 select [字段列表]
 from [临时表] a
 where not exists(select 1 
                  from 表 b
                  where b.A1=a.A1 AND b.A2=a.A2)
卖水果的net 2014-10-21
  • 打赏
  • 举报
回复

-- 凑个人数

drop table test 
go
create table test (A1 int , A2 int )
go
insert into test(A1 , A2) values(1,2),(3,4)
go
insert into test(A1 , A2) 
select 5 ,6 
except
select A1 , A2  from test where A1 =5 and A2 = 6 
go 2  -- 执行 2 次
select * from test 
go


(2 行受影响)
开始执行循环

(1 行受影响)

(0 行受影响)
批处理执行已完成 2 次。
A1          A2
----------- -----------
1           2
3           4
5           6

(3 行受影响)


Yole 2014-10-21
  • 打赏
  • 举报
回复
A和B是值还是参数呢? 是‘A’和‘B’这样的值的话,1楼可行。 要是参数的话,就得用过程了,或者程序拼语句。
reenjie 2014-10-21
  • 打赏
  • 举报
回复
if not exists (select 1 from 表table where A1 = 'A' and A2='B') insert 表table(A1,A2) values('A','B')
Tiger_Zhao 2014-10-21
  • 打赏
  • 举报
回复
[code=sql]INSERT table1 (A1,A2)
SELECT 'A','B'
WHERE NOT EXISTS (SELECT *
FROM table1
WHERE A1 = 'A'
AND A2 = 'B'
)[/code=sql]

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧