在列上放置最大int值

时间:2014-12-02 06:41:05

标签: sql sql-server tsql sql-server-2012

我有一个小桌子,可以跟踪特定文件夹中保存的图片数量。我想知道SQL中有什么东西可以让我设置最大数值限制吗?我只希望名为 photocount 的特定列的最大值为4,000。 每次上传新照片时, photocount 会增加+1,我希望它允许最大值为4,000,并且我已经拥有创建新文件夹的代码,一旦达到4,000 。这就是我到目前为止设置表格的方式......

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

1 个答案:

答案 0 :(得分: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