序列和身份提供全球独一无二的递增值在所有会话和事务,无论隔离级别,他们不受事务回滚的影响。 有可能得到相同的行为和基于行的柜台,如果是这样,如何可以做到吗?
最大的问题似乎是执行柜台更新任何事务的范围之外,可能是开放的。 服务器链接可以自己调用自己的程序的“远程模式”拳通过任何当前活动事务隔离模式?
“远程”调用就可以这样调用一个简单的过程运行在自动提交模式:
create or alter procedure dbo.next_value (@id int, @result int = null output) as begin set nocount on; update dbo.RowBasedCounters set @result = counter_value = counter_value + 1 where counter_id = @id; return @result; end; 背景:我们需要完全相同的行为序列或身份的文件/传输计数器外部通信合作伙伴,对对方的三个独立的柜台。 然而,使用序列或身份并不可行,因为这些需要一个单独的数据库对象命名为每个计数器(即单例对象而不是键控),和在任何情况下有成千上万的伙伴,因此许多千计数器。
注: :这些计数器数字传输(EDI文件)和传输尝试沟通合作伙伴之间在德国医疗系统; 文件为每一对合作伙伴编号从1开始,每年转移尝试永远模编号1000,还为每一对合作伙伴。数字必须是连续的。编号方案由我们控制之外的标准和定义的。
我们使用MS SQL Server 2014。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。