请教系统表加锁的影响

kajaje 2010-12-15 03:18:58
需求是每周创建一张日志表,用于记录这一自然周的日志数据。
现在做的是在存储过程中,数据插入前去sys.objects表中判断本周日志表是否存在,不存在的话就创建。
考虑到并发问题,有可能多条数据在本周的第一时间同时判断是否存在本周日志表,如果不存在就会都去创建周表,这样其中执行的存储过程就会报错。为了避免这种并发状态下的问题,我在对sys.objects表进行查询的时候加了HOLDLOCK锁。
请问对系统表加指定锁是否存在问题,会有哪些问题?
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kajaje 2010-12-15
  • 打赏
  • 举报
回复
上周就碰到类似的问题,两条一样的数据同时进库,流程上要求库里没有的就插入,有的就更新count.没有提升事务级别前会报主键值重复,把事务级别提升后就没问题了。
kajaje 2010-12-15
  • 打赏
  • 举报
回复
刚突然想到一个问题,如果两条数据同时去TRY,并且同时检查到没有本周表的话,是否就会同时创建表,导致失败,数据丢失?
kajaje 2010-12-15
  • 打赏
  • 举报
回复
对,忘了TRY CATCH,多谢鸭子
guguda2008 2010-12-15
  • 打赏
  • 举报
回复
建表的时候加个TRY CATCH不就好了,建不上就不管了
kajaje 2010-12-15
  • 打赏
  • 举报
回复
考虑过作业,怕万一迁移忘了或者AGENT服务出问题,数据就丢失了
王向飞 2010-12-15
  • 打赏
  • 举报
回复
为什么不用作业来做?

27,579

社区成员

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

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