设置SQL Server表的行数限制

时间:2017-05-05 14:58:58

标签: sql sql-server ssms

我想设置我创建的SQL Server表可以拥有的最大行数。问题是我有一个程序不断在我的数据表中写入新数据,但我只需要为每列存储一个值。因此,我想将此数据表的最大可能行数设置为1。有没有人知道如何做到这一点?

否则因为到目前为止我还没有找到这样做的可能性,我还考虑过重写代码并使用SQL UPDATE 语句。

我不太确定什么会更好。

1 个答案:

答案 0 :(得分:1)

在表格中添加标识列,并将其限制在极限范围内。

create table dbo.MyTable (MyColumn varchar(10), i int identity(1,1) check(i <= 5));

insert into dbo.MyTable 
    select 'one' union 
    select 'two' union 
    select 'three' union 
    select 'four' union
    select 'five';


insert into dbo.MyTable 
    select 'nope';

Msg 547, Level 16, State 0, Line 7
The INSERT statement conflicted with the CHECK constraint 

如果真的只有一行,可能是这样的吗?

create table dbo.MyTable (MyColumn varchar(10), Limited bit not null default(1) unique);

insert into dbo.MyTable (MyColumn)
    select 'only one';

insert into dbo.MyTable (MyColumn)
    select 'nope';