我有一個ID爲(身份)和XID(int)的表,這是我的自定義自動增量列。我正在使用而不是插入觸發器來維護XID,但我得到重複。維護自定義自動增量列
表
xtable(ID身份,XID INT)
觸發 - 代替插入
insert into [xtable] (XID)
select [x].[NextavailableID]
from inserted [i]
cross apply
(
select coalesce(max([t].[XID]), 0) + 1 [NextavailableID]
from [xtable] [t]
) [x];
假設插入= 1行。
此觸發器不會阻止XID列中的重複項。任何想法如何改變它?
爲什麼你需要第二個自動遞增列?這是一個簡單的例子嗎?可以有一個更容易維護的替代解決方案。 – GarethD
@GarethD - 這是一個簡單的例子。每家公司都需要有一個唯一的ID。所以xtable也會有一個CompanyID fk – Aducci
哪個SQL Server? 2008年[R2],2012年,2014年? –