方案1:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
IF EXISTS (SELECT 1 FROM dbo.table WHERE PK = @PK)
BEGIN
UPDATE ...
END
ELSE
BEGIN
INSERT ...
END
COMMIT TRANSACTION; 方案2:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
UPDATE dbo.table SET ... WHERE PK = @PK;
IF @@ROWCOUNT = 0
BEGIN
INSERT dbo.table(PK, ...) SELECT @PK, ...;
END
COMMIT TRANSACTION;
 

最新文章

  1. 使用sklearn进行集成学习——理论
  2. std::auto_ptr
  3. iproute-2.6.32
  4. Java Script基础(七) HTML DOM模型
  5. 奥运会订票系统c语言代写源码下载
  6. CentOS安装Redis Sentinel HA集群
  7. Java学习--封装、继承、多态
  8. 看Lucene源码必须知道的基本规则和算法
  9. javascript + sql编写SQL客户端工具tabris
  10. Django 2.0 学习(01):Django初识与安装
  11. 攻防常用命令(linux)
  12. linux下如何查看某软件是否已安装
  13. python之list+字典练习
  14. 基本类型变量、引用类型变量的在java中的存放位置
  15. Ubuntu16.04安装配置和使用ctags
  16. CNN超参数优化和可视化技巧详解
  17. Linux系统下yum源配置(Centos 6)
  18. 阿里云直播服务 sdk demo php
  19. shell实现linux回收站的功能
  20. spring cloud 之 Feign 使用HTTP请求远程服务

热门文章

  1. C#秒转换小时
  2. C#判断奇偶数的函数
  3. [WINCE|VS2008] 用在PC上调试WINCE程序
  4. 转:jquery validate.js表单验证
  5. SQL语句还原数据库并移动文件到指定路径
  6. Swift-EasingAnimation
  7. Python学习---Python的异步IO[all]
  8. September 06th 2017 Week 36th Wednesday
  9. November 30th 2016 Week 49th Wednesday
  10. 奇怪的.strip(alir) #()里面有东西 待问老师........