2014-12-02 85 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 
相关问题