提供一系列唯一数字(C# 与 Sql)的好方法是什么?

2024-02-17

我必须向我的应用程序的客户提供一个唯一的号码。 它是一个发票号码,因此它必须是唯一的,并且当然是线程安全的。

过去,我创建了一个单例并使用了锁定语句:在锁定期间,我会访问数据库并获取新号码,然后释放锁定。

有些东西告诉我,这也可以在 SqlServer 中完成,但在 SqlServer 中我假设我还必须创建某种锁,因为我猜 SQL 代码(存储过程)也可以并行执行。

因此,当我无论如何都必须提供锁时,我在 C# 中还是在 Sql 中提供锁有什么区别吗?


在 SQL Server 中使用标识列:

-- Set up
create table UniqueNumberGenerator (UN int identity primary key)

-- Generate value
insert into UniqueNumberGenerator default values
select scope_identity()

这比获取表上的锁更快、更轻量。看here http://blogs.msdn.com/b/sqlprogrammability/archive/2006/04/04/567724.aspx对于肮脏的细节。

如果您担心表填满数千行,不用担心,您可以定期从表中删除所有行,SQL Server 仍然会记住下一个要生成的值。您可以使用以下命令重置生成的值dbcc checkident如果你需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提供一系列唯一数字(C# 与 Sql)的好方法是什么? 的相关文章

  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo
  • asm、asm 易失性内存和破坏性内存之间的区别

    在实现无锁数据结构和定时代码时 通常需要抑制编译器的优化 通常人们使用asm volatile with memory在 clobber 列表中 但有时你会看到asm volatile或者只是一个简单的asm破坏记忆 这些不同的语句对代码生
  • 如何防止 Parallel.ForEach 循环在运行时更改任务数量?

    我正在使用Parallel ForEach循环做一些工作 我用localInit像这样 localInit gt new foo new Foo bars CreateBars 根据文档 https learn microsoft com
  • 使用 C 序列化 double 和 float

    如何在 C 中序列化双精度数和浮点数 我有以下用于序列化短整型 整数和字符的代码 unsigned char serialize char unsigned char buffer char value buffer 0 value ret
  • 预期在模拟中调用一次,但使用 Moq 时调用次数为 0 次

    我收到错误 在mock上调用一次 但是0次 下面是我的代码结构 public class GenerateAddress IGenerateAddress public GenerateAddress IAddress createAdd
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • C#:如何计算纵横比

    我对编程比较陌生 我需要根据给定尺寸 例如 axb 计算纵横比 16 9 或 4 3 我如何使用 C 来实现这一点 任何帮助将不胜感激 public string AspectRatio int x int y code am lookin
  • 除非我在开​​始时声明变量,否则为什么会收到“错误未声明的标识符”?

    当我有以下情况时 include stdafx h include
  • 更改 Json 中属性的键

    这些天我正在尝试制作一个 json 编辑器 与树视图一起使用 我确实更改了值函数 我也可以更改一些键 但我无法在对象中设置键 我可以设置值 SetValue ref JObject main JToken token JToken newV
  • C++ 访问嵌套类的私有成员

    标题可能有点误导 我有以下问题 我有一棵由叶子和内部节点组成的树 用户应该能够在叶子中存储任何信息and该树有一些方法可以获取一组用户定义的值 并且需要在恒定时间内 未摊销 访问相应的叶子 我提出了以下想法 但它不起作用 因为不幸的是我无法
  • 查找缺失值

    我有一个表 有 2 个重要的列 DocEntry WebId 样本数据就像 DocEntry WebId 1 S001 2 S002 3 S003 4 S005 现在我们可以注意到 在 WebId 列中 S004 丢失了 我们如何通过查询找
  • 如何在运行时统一捕捉两个对象?

    这是 3D 模型 我想将另一个像这样的模型连接到顶部的银色连接器 并将另一个模型连接到右侧 所以请帮助我捕捉它 https i stack imgur com qoWwl png我想知道如何在运行时将两个 3D 对象对齐在一起 即 在 玩
  • 从 Windows 选择声音并播放它们

    我有一个 WinForms 应用程序 该应用程序有一个 首选项 部分 用户可以在其中选择显示警报时播放哪些声音 是否可以有一个组合框 用户可以从 Windows 存储的声音中进行选择 例如 紧急停止 紧急蜂鸣 等 这些可以在 控制面板 gt
  • 如何使用存储过程 SQL SERVER 2008 R2(mssql) 插入 PHP 数组值

    我有这个数组 REV Array 0 gt 240 1 gt 241 2 gt 242 3 gt 243 4 gt 249 我现在使用下面的代码进行插入 将每个数组的元素存储在带有 id userID Type 和 Date 的行中 if
  • WiX 安装程序在 vs 2012 上不起作用

    我想为我的应用程序创建一个安装程序 我已经下载了 WiX 3 6 并将其安装在 vs 2012 上 创建简单的winform应用程序 将 WiX 安装项目添加到我的解决方案中 右键单击参考并将我的 winform 应用程序添加到安装程序的参
  • 如何在mvc视图中的表中显示数据库数据

    在我的 MVC 应用程序中 我从数据库检索数据 我想在表格中显示退役数据 控制器代码 public ActionResult MyAccount var user User Identity Name string sThumbnails
  • Web API 2 c# 中的 Google reCaptcha

    我有一个 ASP NET Web API 2 项目 我正在尝试从表单中读取 Google Captcha 我尝试了这段代码 public string Post FoundingRequest model var response Requ
  • 对数据绑定组合框进行排序的最佳方法是什么?

    我对此做了一些研究 似乎对数据绑定组合框进行排序的唯一方法是对数据源本身进行排序 在本例中为数据集中的数据表 如果是这种情况 那么问题就变成对数据表进行排序的最佳方法是什么 组合框绑定在设计器中设置初始化使用 myCombo DataSou
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试
  • 从 C# 调用 C++ DLL

    我想使用 C 中的 C DLL C DLL 是win32 控制台应用程序 我已成功调用它 并希望在 C 中处理来自 C 的数据 然而 C 应用程序在执行 DLL 后退出 即这一行 GetArrayFromDLL 我是 C 和 Visual

随机推荐

  • 使用 VB.NET 连接到 socket.io

    我有一个在 Heroku 上运行的应用程序 它使用套接字 io http socket io 与客户沟通 到目前为止 所有客户端都是 HTML JS 所以效果很好 现在我想用 Visual Basic 编写一个客户端 但我找不到任何其他人编
  • 查看 Chrome 控制台是否打开

    我正在使用这个小脚本来查明 Firebug 是否打开 if window console window console firebug is open 而且效果很好 现在我搜索了半个小时 想找到一种方法来检测Google Chrome内置的
  • 装饰器运行错误:“UnboundLocalError:赋值前引用的局部变量‘count’”

    我在两个不同的装饰器中创建了两个变量 一个装饰器工作正常 但另一个显示错误 def running average func data total 0 count 0 def wrapper args kwargs print data v
  • 理解扩展 ElementAt(index)

    考虑这段代码 int size 100 1000 1000 var emu Enumerable Range 0 size var arr Enumerable Range 0 size ToArray 当我调用 emu ElementAt
  • Angular 2:设置和删除自定义管道?

    我创建了三个自定义管道来从服务器订购数据 ASC DESC 和默认 它们工作得很好 我希望这三个管道是否处于活动状态 具体取决于用户的交互 问题是 例如 是否可以使用变量更改自定义管道 这是我的代码
  • 如何在cpp宏中生成换行符?

    如何编写扩展以包含换行符的 cpp 宏 我正在开发一个大型项目 其中涉及大量预处理器宏函数来合成无法被模板替换的任何代码 相信我 我熟悉各种模板技巧 但是只要没有可以直接创建代码的标准化 类型安全的元编程语言 我们就必须坚持使用旧的预处理器
  • '4.5:语法错误:算术运算符无效(错误标记为“.5”)' - 但代码似乎仍然有效。为什么? [复制]

    这个问题在这里已经有答案了 当我尝试使用运算符 以及数字 4 5 和 2 时 我的计算器会生成标题中提到的错误 这 就像错误状态一样 很可能是由于 4 5 中小数点后面的内容造成的 但我不知道如何解决这个问题 也不知道为什么脚本实际上能够在
  • VS2015监视窗口不接受空条件语法

    请注意 它既不能在立即窗口中工作 也不能在设置条件断点时工作 谁能解释我做错了什么 EDIT 1 使用旧版 C 和 VB 表达式计算器未选中 然而 使用托管兼容模式已检查 但我记得打开它是为了解决 VS 2015 调试器中的错误 我需要更多
  • 使用 Python Gekko 的全局最小值与局部最小值解决方案

    一个简单的优化示例有 2 个局部最小值 0 0 8 有目标的936 0 and 7 0 0 有目标的951 0 在 Python Gekko 中使用本地优化器的技术有哪些 APOPT BPOPT IPOPT 寻找全局解决方案 from ge
  • Cognito OAuth2 使用桌面应用程序访问代码处理

    我有一个命令行应用程序 我想使用带有访问代码流和托管登录 UI 的 OAuth2 对 AWS Cognito 进行身份验证 对于类似的情况 Google Cloud 文档明确指出推荐 https developers google com
  • 高斯拉普拉斯算子:它是如何工作的? (OpenCV)

    有谁知道它是如何工作的以及如何使用 OpenCV 来做到这一点 拉普拉斯算子可以使用 OpenCV 计算 但结果并不是我所期望的 我的意思是 我希望图像在背景区域具有大致恒定的对比度 但它是黑色的 边缘是白色的 即使经过高斯滤波器 也存在很
  • 通过在可编辑内容上按 Enter 键来制作
    而不是

    我在键盘事件处理程序中编写了一些代码来插入 br 响应 Enter 键的按下 event preventDefault document execCommand InsertHTML true br 仅当光标位于两个字母之间时才有效 如果它
  • 查找当前在 Git 中签出的提交

    我正处于一个git bisect会议 用于找出我当前所在的提交 SHA1 哈希 的命令是什么 git status不提供这个 编辑 我想打电话git log并查看第一个参赛作品 您至少有 5 种不同的方式来查看当前在工作副本中检出的提交gi
  • jQuery 如何删除或隐藏除所选

    给出以下标记 div class foo some junk content div
  • 如何在按 pandas 数据框中的另一列分组后插入缺失的日期和前向填充列

    我有每月可用的数据 针对不同的证券 我想通过添加缺失的日期并转发填充该月所有日期的每月数据 即 2015 年 12 月 3 日的数据 2015 年 12 月 1 日的数据 所有证券依此类推 我的数据如下所示 x pd DataFrame t
  • 如何将 HexViewer 添加到 Sublime Text2

    如何将 HexViewer 添加到 Sublime Text2 我是在这里 https github com facelessuser HexViewer https github com facelessuser HexViewer并且说
  • 在react-router中模块化路由

    有没有一种方法可以使用react router来模块化你的路由 然后导入它们并组装它们 所以代替这个
  • Pharo 5 无头模式下的调试

    我正在无头模式下使用 RFB 运行 pharo 5 海边 pharo vm display null vm sound null app pharo5 Pharo5 0 image no quit 在本地运行良好 带有 XFCE 的 Ubu
  • 如何使 HR 元素与其上方的文本宽度相同

    我希望这个特定 HR 的宽度在任何屏幕尺寸上都与其上方的 LARGER HEADER LIKE THIS 的宽度相同 我的 hr 的默认宽度为 245px 但对于这个特定的宽度 我希望与上面任何屏幕尺寸的文本宽度相同 hr border t
  • 提供一系列唯一数字(C# 与 Sql)的好方法是什么?

    我必须向我的应用程序的客户提供一个唯一的号码 它是一个发票号码 因此它必须是唯一的 并且当然是线程安全的 过去 我创建了一个单例并使用了锁定语句 在锁定期间 我会访问数据库并获取新号码 然后释放锁定 有些东西告诉我 这也可以在 SqlSer