我試圖讓索引值在100到200的範圍內,而不是按照列類型int的0到上限。如何在Microsoft SQL Server中設置最大索引值
對於下限,同時創造我以前[ID] [int] IDENTITY(100, 1) NOT NULL
表但是我不能夠計算出如何實現200
上限如何實現這一目標?
問候
我試圖讓索引值在100到200的範圍內,而不是按照列類型int的0到上限。如何在Microsoft SQL Server中設置最大索引值
對於下限,同時創造我以前[ID] [int] IDENTITY(100, 1) NOT NULL
表但是我不能夠計算出如何實現200
上限如何實現這一目標?
問候
用單向contraint
ALTER TABLE your_table
ADD CONSTRAINT id_limits CHECK (id between 100 and 200)
我一直在以不同的角度思考一些類似於索引的開始索引和種子值的東西...並忘記了基本特徵列約束...對我感到羞恥 – harshal
您可以創建一個觸發器來做到這一點:
CREATE TRIGGER UpperLimit
ON ExistingTable
AFTER INSERT
AS
IF EXISTS
(
SELECT ID
FROM INSERTED
WHERE ID > 200
)
BEGIN
ROLLBACK
END
GO
您的觸發器是危險的:它在不告訴應用程序的情況下默默地回滾一個'INSERT'。至少提出一個錯誤。 –
它將回滾多行操作的所有行。檢查約束在這裏是更好的選擇。 –
這是什麼意思?它應該拒絕ID大於200的插入? –
是的,路易斯應該拒絕一個錯誤 – harshal