我在Sql Power Architect中创建了以下关系图(因为我被告知要在学校做)。本课程中介绍的下一步是使用Forward Engineer获取脚本并使用新Query将其粘贴到Sql Management Server中。我得到这个错误"已有一个名为'作者'在数据库中。"我不知道它的含义或应该如何纠正。如果我没有错误执行,我就无法进入课程的后续步骤。 (我读过以前提出的问题,但我不确定答案是否适用于我的剧本。)
CREATE TABLE Author (
Author_ID INT NOT NULL,
Author_Name VARCHAR(50) NOT NULL,
CONSTRAINT Author_ID PRIMARY KEY (Author_ID)
)
CREATE TABLE Publisher (
Publisher_ID INT NOT NULL,
Publisher_Name VARCHAR(80) NOT NULL,
Address VARCHAR(100),
CONSTRAINT Publisher_ID PRIMARY KEY (Publisher_ID)
)
CREATE UNIQUE NONCLUSTERED INDEX Publisher_idx
ON Publisher
( Publisher_ID )
CREATE TABLE Book (
ISBN CHAR(13) NOT NULL,
Title VARCHAR(128) NOT NULL,
Price REAL NOT NULL,
DateAdded DATETIME,
Pages INT,
DescriptionSummary TEXT,
Publisher_ID INT NOT NULL,
Author_ID INT NOT NULL,
CONSTRAINT ISBN PRIMARY KEY (ISBN)
)
CREATE UNIQUE NONCLUSTERED INDEX Book_idx
ON Book
( Title )
CREATE UNIQUE CLUSTERED INDEX Book_idx11
ON Book
( ISBN )
CREATE UNIQUE CLUSTERED INDEX Book_idx2
ON Book
( ISBN )
CREATE UNIQUE CLUSTERED INDEX Book_idx3
ON Book
( ISBN )
CREATE TABLE Book_Genre (
ISBN CHAR(13) NOT NULL,
Genre_ID_sq_1 INT NOT NULL,
CONSTRAINT ISBN PRIMARY KEY (ISBN, Genre_ID_sq_1)
)
CREATE TABLE Genre (
Genre_ID INT NOT NULL,
ISBN CHAR(13) NOT NULL,
Genre VARCHAR(44) NOT NULL,
CONSTRAINT ID PRIMARY KEY (Genre_ID, ISBN)
)
CREATE UNIQUE NONCLUSTERED INDEX Genre_idx
ON Genre
( Genre_ID )
ALTER TABLE Book ADD CONSTRAINT Author_Book_fk
FOREIGN KEY (Author_ID)
REFERENCES Author (Author_ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Book ADD CONSTRAINT Publisher_Book_fk
FOREIGN KEY (Publisher_ID)
REFERENCES Publisher (Publisher_ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Book_Genre ADD CONSTRAINT Book_Book_Genre_fk
FOREIGN KEY (ISBN)
REFERENCES Book (ISBN)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Genre ADD CONSTRAINT Book_Genre_Genre_fk
FOREIGN KEY (ISBN, Genre_ID)
REFERENCES Book_Genre (ISBN, Genre_ID_sq_1)
ON DELETE NO ACTION
ON UPDATE NO ACTION
答案 0 :(得分:2)
这意味着您已经创建了作者表。现在你可以改变它或者删除它。如果您使用的是Microsoft SQL Server Management工作室,则可以右键单击表格 - >选择脚本表为 - > DROP和CREATE Table to - >新的查询编辑器窗口。这将创建用于删除表并创建新表的sql代码。与下面的代码相同。
DROP TABLE [dbo].[Author]
GO
CREATE TABLE Author (
Author_ID INT NOT NULL,
Author_Name VARCHAR(50) NOT NULL,
CONSTRAINT Author_ID PRIMARY KEY (Author_ID)
)
GO
但是,如果删除表,则会丢失Author表中的数据。如果您对自己没有足够的信心,可以将它在Management Studio中重命名为Author1。您还可以通过使用名为sp_depends的存储过程来查看正在使用您的表的其他内容。
sp_depends Author;
它会告诉你还需要表作者才能正常运行。您也可以尝试将其与其他东西一起使用,而不仅仅是表格。这是一个有用的小东西,可以确保在放弃之前不会造成太多问题。