SQL Server是否可以根据另一列创建标识列?
我有像这样的桌面设计
Audit
AuditId
CompanyId
系统中的所有内容都经过审核,表格可以是多租户,因此CompanyId
。
在审计的背景下,人们喜欢看到连续的事件序列,并且由于多租户性质,身份将跳过这样的数字。
理想情况下,我会将AuditId
保留为正常身份,但希望拥有CompanyId
唯一的辅助标识列。
这在SQL Server中是否可行,或者我是否需要在代码中执行此操作?
答案 0 :(得分:1)
SQL Server不能有基于另一列的标识列,因为表中只能有一个标识列。
答案 1 :(得分:0)
您可以通过插入触发器填充companyAuditId。它将被定义为int,但在插入时触发器将
Create trigger trAuditI for insert
UPDATE audit
SET CompanyAuditId = max(companyAuditId)
where companyId
= Inserted.CompanyId