Cas*_*ass 1 sql create-table sql-server-2008
抱歉,如果这看起来像重复的,但我找不到我的情况的答案。我正在尝试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]
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
消息2714,级别16,状态5,第33
行在数据库中已经有一个名为“ cardissuedates”的对象。消息1750,级别16,状态0,第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
Run Code Online (Sandbox Code Playgroud)
我什至创建了一个新数据库并执行了该create语句,并在USE语句中使用了新的数据库名称。同样的错误。
我已经停止了退出SSMS的所有服务。似乎没有任何作用。我不知道再看哪里。
任何帮助将不胜感激。
谢谢
小智 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]
Run Code Online (Sandbox Code Playgroud)
我刚刚在约束中添加了前缀PK_