请教多个客户端向sql同时提交耗时数据之后,处理关系是怎样,请看详细实例

中文命名法 2021-03-10 11:04:38
A表字段:地址(文本)
B表字段:地址(文本)

客户端提交数据有2种存储过程,
一:是向A表新增数据,然后检查这些新数据是否已存在于B表,如果有,做标记;
二:是向B表新增数据,然后检查这些新数据是否已存在于A表,如果有,做标记;

目前程序是单线程的,第一种行为和第二种行为不同时发生。如果改成多线程同时提交的话,因为这是耗时操作,数据会不会错乱,譬如:
在9:00时执行了存储过程一,预计9:06才能完成,
在9:02的执行了存储过程二。预计9:04才能完成,比存储过程一晚开始,但早结束。

那是不是就会存在过程一往表A里新增的数据由于执行过程二的时候还没写完,没有被过程二比对到?
这样的结果就导致其实有纪录存在于表A,但我没有做出标记?
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
中文命名法 2021-03-12
  • 打赏
  • 举报
回复
引用 3 楼 吉普赛的歌 的回复:
建议你看下我的博客:https://blog.csdn.net/yenange/article/details/78903480
谢谢你的思路。
shoppo0505 2021-03-10
  • 打赏
  • 举报
回复
会 你可以把两个存储过程打包在一个新的存储过程中执行
shoppo0505 2021-03-10
  • 打赏
  • 举报
回复
引用 2 楼 中文命名方式倡导者 的回复:
[quote=引用 1 楼 shoppo0505 的回复:]会 你可以把两个存储过程打包在一个新的存储过程中执行
如果合体了,多用户同时执行这个存储过程,还是会有数据没被对比到的吧?[/quote] 如果在一个存储过程中, 把命令放在batch中(begin 。。。 end)应该就没有问题了。
吉普赛的歌 2021-03-10
  • 打赏
  • 举报
回复
中文命名法 2021-03-10
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
会 你可以把两个存储过程打包在一个新的存储过程中执行
如果合体了,多用户同时执行这个存储过程,还是会有数据没被对比到的吧?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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