我为公寓创建了下表,并在列ApartmentID上使用了自动增量。我想过,一旦我将此自动增量设置为101,它会在插入时自动增加行数,但是我只是得到一个空值。
我的创建表代码是; 创建公寓 ( ApartmentID smallint, - AUTOINCREMENT = 101, 占用者smallint NULL默认为0, 租金默认为0, CurrentOccupier smallint NULL, )
因为我的create table中包含自动增量,所以我按如下方式插入值; INSERT INTO dbo.Apartments(Occupier,Rent,CurrentOccupier) VALUES (' 1'' 400'' 21&#39), (' 0'' 450'' 90&#39),
以下是我的结果; ApartmentID Occupier Rent CurrentOccupier NULL 1 400.00 21 NULL 0 450.00 90
担心ApartmentID列显示NULL而不是101,102,103等,并且认为这与列属性null有关,我删除了表,并在下面重新创建它;
创建公寓 ( ApartmentID smallint NOT NULL, - AUTOINCREMENT = 101, 占用者smallint NULL默认为0, 租金默认为0, CurrentOccupier smallint NULL, )
我得到的结果/信息是 Msg 515,Level 16,State 2,Line 1 无法将值NULL插入列' ApartmentID',table' Apartment_2.dbo.Apartments'专栏没有 允许空值。 INSERT失败。
我想使用我创建的第一个表,如果我可以在ListID列中显示值101,102等,当我运行查询select * from Apartments而不是单词null。
任何/建议帮助将不胜感激。这可能是一个简单的错误,但是新的我不认识我的错误。我也包括了 - 正如我在网上看到的那样,在自动增量前面。
由于 乔西
答案 0 :(得分:1)
在SQL Server中,您将列声明为IDENTITY
而不是自动增量。声明这种以101为种子的列的语法是
CREATE TABLE Apartments
(
ApartmentID smallint NOT NULL IDENTITY(101,1) PRIMARY KEY,
Occupier smallint NOT NULL default 0,
Rent money NOT NULL default 0,
CurrentOccupier smallint NULL
)
我认为您可能希望此列成为主键。如果不是这样,请删除这些关键字。
答案 1 :(得分:0)
请尝试以下代码。这应该对你有帮助。
CREATE TABLE Apartments ( ApartmentID smallint IDENTITY(101,1) NOT NULL, Occupier smallint NULL default 0, Rent money default 0, CurrentOccupier smallint NULL);