很抱歉,如果这看起来像重复但我找不到我的情况的答案。我正在尝试在数据库cardissuedates
中创建表NBFP
。
这是我的创建声明:
USE NBFoodPantry
CREATE TABLE cardissuedates
(
clientid char(36) NOT NULL,
issuedate date NOT NULL
CONSTRAINT cardissuedates
PRIMARY KEY CLUSTERED (clientid ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
我收到此错误:
Msg 2714,Level 16,State 5,Line 33
数据库中已经有一个名为“cardissuedates”的对象。Msg 1750,Level 16,State 0,Line 33
无法创建约束或索引。查看以前的错误。
NBFB
数据库中不存在该表,当我检查master和NBFB时,我找不到它。
我试过了
select *
from sys.all_objects
where name like '%ca%'
order by 1
select *
from sys.tables
where name like 'c%'
order by 1
select *
from sys.all_columns
where name like 'c%'
order by 1
我甚至创建了一个新数据库并使用USE语句中的新数据库名称执行了此create语句。同样的错误。
我已停止退出SSMS的所有服务。似乎没什么用。 我不知道在哪里看。
任何帮助都会非常感激。
由于
答案 0 :(得分:5)
您为主键提供与表相同的名称,这是不允许的,因为两者都是架构范围的对象,而且多个对象不能具有相同的schema_name.object_name
。你可以这样做:
CREATE TABLE cardissuedates (
clientid char(36) NOT NULL,
issuedate date NOT NULL CONSTRAINT
pk_cardissuedates PRIMARY KEY CLUSTERED ( clientid ASC )
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON,
FILLFACTOR = 90
) ON [PRIMARY]
) ON [PRIMARY]
我刚刚将前缀PK_添加到约束