无法在SQL Server中创建一个名为State的表?

时间:2010-12-09 19:45:30

标签: sql-server

我想在我的数据库中保存一个状态列表。但似乎我不能称之为“国家”。 SQL Management Studio中的Intellisense以不同的方式对其进行着色。

这是一个正确的假设,我应该称之为别的吗?

create table Category
(
    ID int primary key identity(1,1),
    Name nvarchar(256) not null
)

go

create table Subcategory
(
    ID int primary key identity(1,1),
    Name nvarchar(256) not null,
    IDCategory int foreign key references Category(ID)
)

go

create table Advert
(
    ID int primary key identity(1,1),
    IDAdvertiser int foreign key references Advertiser(ID),
    IDSubcategory int foreign key references Subcategory(ID),
    ImagePath nvarchar(2048) not null,
    StartDate datetime not null,
    FinishDate datetime
)

go

create table Advertiser
(
    ID int primary key identity(1,1),
    Name nvarchar(2048) not null,
    Contact nvarchar(256) not null,
    Website nvarchar(256) not null
)

go

create table State

3 个答案:

答案 0 :(得分:6)

将其称为[State]以避免与系统保留字冲突。虽然在大多数情况下,这不是必需的,但解析器通常足够聪明,可以知道何时引用表名。

答案 1 :(得分:2)

不要依赖intellisense告诉你什么是正确的。名为State的表格很好。但如果有疑问,请在[]中加注,例如[State]

答案 2 :(得分:0)

我们的大多数表遵循略有不同的命名方案。

例如,代替表示单个项目的“State”,我们将其称为“States”。我们使用“广告商”

而不是“广告商”(同样的事情)