sql-server - 具有自动增量的自定义主键生成

标签 sql-server primary-key auto-increment

我需要为 2 个或更多表定义和生成主键。

表包含相同类型的数据,但对于某些业务规则,我们必须将它们分开,比如

表 A = LOCAL_CUSTOMERS
表 B = INTERNATIONAL_CUSTOMERS

两者都包含相同的列,例如 CUSTOMER_ID C_NAME、CITY ....等

在设计主键时,我希望这些键是以下组合 PREFIX 和一个自动生成的数字,作为一个自动增加的 int PK 就可以了。

例如,表“LOCAL_CUSTOMERS”的 CUSTOMER_ID (PK)

LOC1、LOC2、LOC3、……LOC5000

和表“INTERNATIONAL_CUSTOMERS”的 CUSTOMER_ID (PK)

INT1, INT2, INT3,...... INT5000

WHERE LOC 和 INT 是 LOCAL 和 INTERNATIONAL 的前缀。

我们可以使用 int 在“标识规范”中设置自动递增,但我该怎么做呢? 我需要为列设置“计算列规范”吗?

谢谢

最佳答案

您可以在区域 ID 和自动 ID 上使用复合键。

还可以有一个触发器,在插入时将 pk 设置为自定义字符串。

一般来说,最好将它们保存在同一个表中(因为它们具有相同的列)并且仅在本地与国际之间有所不同。

关于sql-server - 具有自动增量的自定义主键生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996831/

相关文章:

sql-server - 应该在 SQL Server 中彻底评估哪些设置?

mysql - 如何查找另一个表中不存在的内容?

java - 如何从 Oracle 中的 JDBC 批量插入中获取生成的键?

oracle - 通过 slick 处理 Oracle 中的自动 inc 列

mysql - 将数据从 MS SQL 移动到 MySQL

sql-server - 具有视觉反馈的 SSIS Foreach 循环

arrays - 在 SQLite 中存储在另一个表中引用的数组

MySQL 在服务重启时为表重置 AUTO_INCREMENT

oracle - 重置自动增量序列pl-sql

python - Pyodbc 找不到 FreeTDS 驱动