在插入/更新或删除之前检查数据库的最佳解决方案



想知道在插入/更新或删除记录之前检查记录是否存在的最佳方法是什么。

我认为 MERGE 将是一种最佳方法,但我已经读到我可能不是最佳解决方案,因为它们有错误并且还会影响性能(现在我读过的这些文章可能是较旧的问题(

我们正在使用 SQL SERVER 2016。因此,与此版本相关的任何内容可能会有所帮助?

我还认为,根据PK和返回的值检查数据库,我可以执行插入或更新

例如 如果(表中的计数为 0(,则插入其他更新。

我只是想找到处理我们日常交易的最佳方式。我们的申请平均每小时处理 200,000 条记录。

谢谢

我会创建一个存储过程,在插入之前检查记录是否存在,例如(假设您已经自动生成了主键的身份(

创建进程PR_Insert_Something @FirstName @LastName 如 开始 开始 TRAN 如果不存在(从表 A 中选择 *,其中名字 = @FirstName 和姓氏 = @LastName( 开始 插入到表 A 中(名字,姓氏( 值(@FIRSTNAME,@LASTNAME( 提交 TRAN 结束 还 开始 RAISERROR(( <-- 如果不确定要在这里做什么,请查找 RAISERROR 回滚 TRAN 结束 结束 去;

无论如何,最好从应用程序动态执行SQL操作。

最新更新