2014-12-02 89 views
0

我有一個小表,用於跟蹤保存在特定文件夾中的圖片數量。我想知道是否有什麼SQL可以讓我把最大的數值限制?我只想要一個名爲photocount的特定列的最大值爲4,000。 photocount每次上傳新照片時都會增加+1,我希望允許它保留最大值4,000,並且我已經有了創建新文件夾的代碼,一旦它達到4,000。這是我有我的表建立了迄今爲止...在列上放置最大int值

CREATE TABLE [dbo].[photocheck] 
(
    [photocheckId] INT NOT NULL PRIMARY KEY IDENTITY, 
    [directoryname] VARCHAR(50) NOT NULL, 
    [photocount] INT NOT NULL 
) 
+1

約束.....但是這將是一個相當不尋常的設計... – 2014-12-02 06:43:23

+0

爲什麼4000?爲什麼不是3999或4001?我會理解2的力量,例如4096. – abatishchev 2014-12-02 06:45:52

+0

4000是仍能夠瀏覽圖片文件夾的每個文件夾允許的最大圖片數量。 – user1591668 2014-12-02 06:51:30

回答

2

在我的理解,一旦一個文件夾充滿4000照片。您切換到新文件夾並將照片計數重置爲0.您可以向表格結構添加約束以避免超過4000的值。但是,爲了更好地避免不必要的異常,請在新插入時檢查新的照片計數值。

這裏不需要約束:

CREATE TABLE #photocheck 
(
[photocheckId] INT NOT NULL PRIMARY KEY IDENTITY, 
[directoryname] VARCHAR(50) NOT NULL, 
[photocount] INT NOT NULL, 

CONSTRAINT CheckRegNumber CHECK (photocheckId <= 4000) 
) 

有道理: 同時插入使用,如果條件。

IF(@photocount <= 4000) 
BEGIN 
    --Insert new row. 
END 
ELSE 
    --Warn with count exceeds 4000. 
BEGIN 
END 
相關問題