2015-01-05 52 views
0

我試圖讓索引值在100到200的範圍內,而不是按照列類型int的0到上限。如何在Microsoft SQL Server中設置最大索引值

對於下限,同時創造我以前[ID] [int] IDENTITY(100, 1) NOT NULL表但是我不能夠計算出如何實現200

上限如何實現這一目標?

問候

+1

這是什麼意思?它應該拒絕ID大於200的插入? –

+0

是的,路易斯應該拒絕一個錯誤 – harshal

回答

5

用單向contraint

ALTER TABLE your_table 
ADD CONSTRAINT id_limits CHECK (id between 100 and 200) 
+0

我一直在以不同的角度思考一些類似於索引的開始索引和種子值的東西...並忘記了基本特徵列約束...對我感到羞恥 – harshal

-1

您可以創建一個觸發器來做到這一點:

CREATE TRIGGER UpperLimit 
ON ExistingTable 
AFTER INSERT 
AS 
    IF EXISTS 
    (
     SELECT ID 
     FROM INSERTED 
     WHERE ID > 200 
    ) 
    BEGIN 
     ROLLBACK 
    END 
GO 
+4

您的觸發器是危險的:它在不告訴應用程序的情況下默默地回滾一個'INSERT'。至少提出一個錯誤。 –

+0

它將回滾多行操作的所有行。檢查約束在這裏是更好的選擇。 –