跨多个表维护 Identity 值

2024-03-13

我们遇到的情况是,多个表中有一个名为 Customer_Number 的列。该列是所有表中的标识列,但是有没有办法可以使该列在所有表中唯一。

例如,如果我在 table_one 中添加一行,并且标识列为其分配值 1,现在如果有人在 table_two 、 table_third 或 table_four 的 Customer_Number 列中添加另一行,则应为其分配值 2。

我该怎么做,我一直在网上阅读,似乎我必须创建一个表来记录任何表的最后生成的值,并从该表中获取值的 MAX() 并向其添加 1 以获得下一个可用值,是否有更简单的方法?


我自己没用过,但我认为你需要新的Sequence Object http://msdn.microsoft.com/en-us/library/ff878091%28v=sql.110%29.aspx

您将创建一个序列对象,而不是使用标识值,只需从序列对象中获取下一个值。

创建序列对象

CREATE SEQUENCE Sqnc_Number_Generator AS INT   --<-- This can be Bigint as well
    START WITH   1  -- Start with value 1
    INCREMENT BY 1  -- Increment with value 1
    MINVALUE  1     -- Minimum value to start is 1
    MAXVALUE  50000 -- Maximum it can go to 5000
    NO CYCLE        -- Do not go above 5000
    CACHE 500        -- Increment 500 values in memory rather than incrementing from IO

获取下一个值

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE http://sqlfiddle.com/#!6/e2f3c/2

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

跨多个表维护 Identity 值 的相关文章

随机推荐

  • 在 JSON 的情况下,当模式推断留给 Spark 时,为什么 Spark 会输出 nullable = true?

    Spark为何显示可空 true 当未指定模式并将其推理留给 Spark 时 shows nullable true for fields which are present in all JSON records spark read j
  • 在数据网格的组合框列中显示图像

    我想在数据网格中有一个组合框来显示实际图像列表 而不是文本 我可以通过手动构建组合框来完成这项工作 但似乎无法通过绑定来完成这项工作 这大约是使用数据网格的唯一方法 我也尝试过一个template column 但得到了相同的结果 显示图像
  • 二元炸弹第五阶段问题(我的第五阶段似乎和其他人不一样)

    所以我正在做一个二元炸弹作业 但陷入了困境 尝试查看其他问题和指南 但我的问题和指南似乎与我在网上找到的其他问题和指南中描述的完全不同 该阶段仅需要 2 个无符号整数作为输入 这里它在以 11 2 作为输入运行后在 gdb 中被反汇编 Du
  • 使用 Javascript 操作突出显示的文本

    你好 我正在尝试用 Javascript 开发一些代码 将突出显示的文本添加到类中 我想通过此实现的是使用自定义颜色突出显示文本的能力 我希望它看起来像下面这样 window getSelected span class window ge
  • 函数 insertMany() 无序:获取错误和结果的正确方法?

    看来MongoDBinsertMany 将有序选项设置为 false 的函数可以比将有序选项设置为 true 更有效地插入文档 并且即使多个文档插入失败也可以继续插入文档 但我发现没有干净的方法来获取每个失败文档的错误和总体命令结果 顺便说
  • 如何从android中的edittext中获取选定的文本?

    我有一个编辑文本 其中选择了一些文本 我只想通过单击按钮从 edittext 中获取选定的文本 请向我推荐可用的链接或示例代码 EditText et EditText findViewById R id edit int startSel
  • 如何在 JSF 中的表中动态添加行?

    在我的应用程序中 我需要单击按钮添加一行 并且该按钮将位于所有行中 需要帮助来做到这一点吗 项目类别 public class Item public Item private String value public Item String
  • 在java web应用程序中添加httponly和安全标志来设置cookie

    我想添加httponly and secureCookie 的标志 为了实现它 我正在使用Filters其配置在web xml 添加flag的代码如下 package com crisil dbconn import java io IOE
  • 无法在 IIS (Windows 10) 上运行 ASP.net 服务 - 错误 404(未找到)

    场景如下 Windows 10 VS2015 update 3 创建新的空白 空 asp net 项目 NET 4 5 2 并添加虚拟 index html 使用 IIS Express 默认 运行项目 运行良好 将服务器更改为 IIS 获
  • 在 Rails 中将时间从一个时区转换为另一时区

    My created at时间戳以 UTC 格式存储 gt gt Annotation last created at gt Sat 29 Aug 2009 23 30 09 UTC 00 00 如何将其中之一转换为 东部时间 美国和加拿大
  • Rails name_scope 与 has_and_belongs_to_many

    我有 3 个表 电影 film genres 用于连接 2 个表 和流派 在模型 film rb 中 has and belongs to many genres 在模型类型 rb has and belongs to many films
  • 在 TextMate 中将 RVM 与不同的 gemset 结合使用

    我已经设置了 RVM 并按照以下方式为我的项目制作了单独的宝石集RVM 最佳实践 http rvm beginrescueend com rvm best practices 现在在 TextMate 中运行测试文件不起作用 我已经在这里读
  • Laravel Mix 中的真实 ENV 值

    因此 在 Laravel Mix 中 文档中说我们可以向 env 文件添加以 MIX 为前缀的内容 然后我们可以在编译时在 JS 文件中访问它 我想我可能在这里遗漏了一些东西 因为这并没有真正提供与 env 文件类似的任何内容 因为在将资产
  • 在脚本中使用内置电子表格函数

    我是第一次使用 Google App Script 我在 Google Doc 电子表格上使用它 我正在尝试非常简单的功能 只是为了学习基础知识 例如这有效 function test hello return hello 但我对这个简单的
  • BEM CSS:相似块和样式共享

    阅读有关 BEM CSS 的内容并使用它编写了一些小型网站 我对它相当熟悉 但是 我仍然不确定如何处理非常相似但没有关系的块 假设我有很多无序列表块 它们的顶行都具有相同的样式 其他列表项可以以不同的方式布局 并且彼此完全无关 我发现自己给
  • 在 onPageFinished 事件之外将 Javascript 注入到 Web 视图中(使用 DatePicker 在 Web 视图的输入上设置日期)

    我有一个 Android 应用程序 运行一个加载特定页面的 WebView 也是该应用程序的一部分 我想使用 Android DatePicker 从用户那里获取日期 并在 WebView 页面内的输入上设置该值 当用户单击输入时 Date
  • UIWebView横向旋转不填充视图

    我的 UIWebView 遇到问题 当视图加载时 它会以任一方向加载 完美填充整个页面等 然而 如果我以纵向方式加载它 然后旋转设备 网络视图不会一直填充到右侧 我一生都无法弄清楚为什么 这是我的看法确实加载方法 void viewDidL
  • 创建 ViewModel:在模型数据可用之前还是之后进行?

    我有一个从数据源加载数据的 WPF 应用程序 在加载一些数据之前 没有任何内容可显示 我的问题是我是否 在任何数据可用之前创建V和VM 一旦可用 就在虚拟机中设置数据 一开始只创建V 等待数据可用 然后创建注入数据的虚拟机 仅在数据可用时创
  • 如何删除已删除的 git 子树文件夹的历史记录?

    我使用 git subtree 添加了一个 git 存储库 问题是我硬重置回使用 git subtree 添加存储库之前 现在提交历史记录仍在存储库中 但已与主服务器断开连接 知道如何删除它吗 我尝试了 git rm cached 但没有成
  • 跨多个表维护 Identity 值

    我们遇到的情况是 多个表中有一个名为 Customer Number 的列 该列是所有表中的标识列 但是有没有办法可以使该列在所有表中唯一 例如 如果我在 table one 中添加一行 并且标识列为其分配值 1 现在如果有人在 table