是否可以在SQL Server 2008中的表的主键字段中插入0
?
答案 0 :(得分:6)
只要它是一个数字字段,是的......跟随在家里!
create table TestTable
(
TestColumn int not null primary key
)
insert TestTable values(0)
primary key
限制只要求该值唯一且列不可为空。
对于identity
字段:
create table TestTable
(
TestColumn int identity(1, 1) not null primary key --start at 1
)
set identity_insert TestTable on
insert TestTable (TestColumn) values (0) --explicitly insert 0
set identity_insert TestTable off
identity(1, 1)
表示“从一开始,每次插入一个时加1”。您可以identity(-100, 10)
从-100
开始,每次增加10
。或者你可以从0
开始。没有限制。
您通常可以通过尝试并查看它们是否有效来回答这些问题。这比在StackOverflow上询问更快,通常更有益。
答案 1 :(得分:0)
是的,它可以为零。该值可以是-2,147,483,648到2,147,483,647,从 - (2 ^ 31)到2 ^ 31 - 1,是无符号整数的整个范围。
如果你期望有大量的记录,比如高达43亿,那么从最小的价值开始是有意义的,并且一路走来。
CREATE TABLE TestTable
(
TestColumn INT IDENTITY(−2,147,483,648, 1) NOT NULL PRIMARY KEY --start at 1
)