我想设置我创建的SQL Server表可以拥有的最大行数。问题是我有一个程序不断在我的数据表中写入新数据,但我只需要为每列存储一个值。因此,我想将此数据表的最大可能行数设置为1。有没有人知道如何做到这一点?
否则因为到目前为止我还没有找到这样做的可能性,我还考虑过重写代码并使用SQL UPDATE 语句。
我不太确定什么会更好。
答案 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';