首页 > 解决方案 > 如何使分支 ID 依赖于所选的分支?

问题描述

我正在尝试创建一个自定义主键,该主键递增并依赖于输入的分支。例如,如果我输入'MIAMI'作为分支,ID将显示为MI0001,如果我输入'CALIFORNIA',它将显示CA0001等等。我该怎么做?这是我到目前为止所得到的。

CREATE TABLE dbo.tblCompany
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   CompanyID AS 'MI-' + RIGHT('00000000' + CAST(ID AS VARCHAR(3)), 3) PERSISTED,
   FirstName VARCHAR(30),
   LastName VARCHAR(30),
   Branch VARCHAR(100) NOT NULL
   CHECK(Branch IN('MIAMI', 'CALIFORNIA', 'NEW YORK', 'SEATTLE'))
  )

标签: sqlsql-serverdatabase

解决方案


您必须使用 INSTEAD OF INSERT 触发器,并扫描目标表或为每个分支维护单独的 SEQUECE 对象。

所以这不值得做,你不应该尝试。


推荐阅读