想知道什么是在INSERT / UPDATE或DELETE记录之前检查记录是否存在的最佳方法。
我认为MERGE是一种最佳方法,但我读到我可能不是最好的解决方案,因为它们存在错误并且还会影响性能(现在,我读过的这些文章可能是较旧的问题)
我们正在使用SQL SERVER2016。因此,与此版本相关的任何内容都会有所帮助?
我还认为,根据PK和返回的值检查数据库,我可以执行插入或更新
例如 如果(表中的计数为0),则插入else更新。
我只是想找到处理我们日常交易的最佳方法。我们的应用程序每小时平均处理200,000条记录。
谢谢
答案 0 :(得分:0)
我将创建一个存储过程,以在插入之前检查记录是否存在,例如(假设您已经自动生成了主键的标识)
创建PROC PR_Insert_Something @名字 @姓 如 开始 开始TRAN 如果不存在(从表A中选择* FirstName = @FirstName AND LastName = @LastName) 开始 插入表A(名字,姓氏) VALUES(@ FIRSTNAME,@ LASTNAME) 提交交易 结束 其他 开始 RAISERROR()<-如果不确定在此做什么,请查找RAISERROR 回滚交易 结束 结束 开始;
总是更好地从应用程序动态地执行SQL操作。