如何长期锁定表中的某些数据不给用户修改和删除?

supercpu123 2016-06-24 09:47:12
现有系统是第三方开发的,无系统源代码,只能操作数据库.

现在想实现,在数据结算后,某些历史数据不再给用户修改和删除,只能查询.

我想请教下,MSSQL本身能不能实现,把数据行长期锁死不给修改的功能
...全文
302 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2016-06-25
  • 打赏
  • 举报
回复
引用 5 楼 supercpu123 的回复:
谢谢,我们测试下,不知道效率怎么样
效率怎样需看具体需求, 数据量和程序写法等等因素. 无法简单的说好与不好.
supercpu123 2016-06-24
  • 打赏
  • 举报
回复
引用 3 楼 ap0405140 的回复:
可以长期锁定某些数据行,客户端无法修改,但是不会报错,是进程的无限期等待... 建议用触发器实现,当用户有修改指定记录时,自动rollback事务并提示不可修改.
谢谢,我们测试下,不知道效率怎么样
supercpu123 2016-06-24
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
历史数据 是单独的表吗?
一个表,大概1个月会产生20万行的数据,现在也就才100多万行
唐诗三百首 2016-06-24
  • 打赏
  • 举报
回复
可以长期锁定某些数据行,客户端无法修改,但是不会报错,是进程的无限期等待... 建议用触发器实现,当用户有修改指定记录时,自动rollback事务并提示不可修改.
卖水果的net 版主 2016-06-24
  • 打赏
  • 举报
回复
历史数据 是单独的表吗?
mingqing6364 2016-06-24
  • 打赏
  • 举报
回复
如果是要永久锁定一个表,不准他修改插入删除任何数据,设置一下权限就可以 如果是要锁定表中部分数据,建议使用触发器
足球不是方的 2016-06-24
  • 打赏
  • 举报
回复
用触发器倒是可以实现这个需求,但是性能不好,用户一多就太慢了。 还不如把数据分成2个表,一个正常表,一个历史表,查询的时候union all 2张表,update的时候只更新正常表。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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