sql server 有insertorupdate 语句吗,能自动识别是插入还是更新的

三千大千世界 2012-08-01 10:54:55
就是一条语句,它会自动识别记录,新的就插入,原有的就update,有这种语句吗,???
...全文
368 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
三千大千世界 2012-08-02
  • 打赏
  • 举报
回复
我也动态sql把记录放到了一个临时表里,然后执行下面的 merge 语句
merge TargetTable as tar
using (select * from #tmp1) as src
on tar.userId=src.userId

然后报错说: Invalid column name 'userId'.

大神帮忙看看怎么回事啊
三千大千世界 2012-08-02
  • 打赏
  • 举报
回复
merge 语句的using()的括号里面能执行动态sql吗,各位大神,帮帮忙
三千大千世界 2012-08-02
  • 打赏
  • 举报
回复
我是load一批数据过来,批量插入的啊,然后merge 后面的 when matched then 后面能接 多条dml语句吗
孤独加百列 2012-08-02
  • 打赏
  • 举报
回复
写个instead触发器,插入判断,存在更新不存在插入。
zhousq00 2012-08-02
  • 打赏
  • 举报
回复
个人觉得,还是要在语句上做判断
以学习为目的 2012-08-02
  • 打赏
  • 举报
回复

IF
(SELECT COUNT(*) FROM Tab WHERE Col='AA')=0
INSERT INTO Tab (Col) VALUES ('A')
ELSE
UPDATE Tab SET Col='A' WHERE Col='AA'


饮水需思源 2012-08-01
  • 打赏
  • 举报
回复
if (select count(*) from 表名 where 字段名='aa')=0
insert into 表名(字段名) values('aa')
else
update 表名 set 字段名='aa1' where 字段名='aa'
shoppo0505 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

2008有一个关键字:merge可以实现这个功能,以前版本没用,只能用case when或者if/else来实现了。没有:insertorupdate这种写法,关于merge,还是参考联机丛书比较权威,上面也有例子。
[/Quote]
+1
發糞塗牆 2012-08-01
  • 打赏
  • 举报
回复
2008有一个关键字:merge可以实现这个功能,以前版本没用,只能用case when或者if/else来实现了。没有:insertorupdate这种写法,关于merge,还是参考联机丛书比较权威,上面也有例子。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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