2016-10-31 62 views
-1

我在Sql Power Architect中創建了以下關係圖(正如我在學校被告知的那樣)。本課程介紹的下一步是使用Forward Engineer來獲取腳本並使用新的Query將其粘貼到Sql Management Server中。我得到這個錯誤「數據庫中已經有一個名爲'Author'的對象。」我不知道它是什麼意思或應該如何糾正。如果我無法執行任何錯誤,我無法進入本課程的下一步。 (我讀以前問的問題,但我不知道答案適用於我的腳本。)」數據庫中已有一個名爲'Author'的對象。「

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 

enter image description here

+5

由於'Author'是您創建的第一個項目,所以我會下注已經存在的表格,之前已由您的腳本的另一個運行創建。我不知道sql服務器,但是要麼有'創建或替換'語法,要麼應該'放下'表(或整個'schema')。 – Aaron

+0

'IF OBJECT_ID('dbo.Author','U')不是NULL DROP TABLE dbo.Author; '所有表格。 – artm

回答

1

這意味着你已經創建作者表。現在你可以改變它或丟棄它。如果您正在使用Microsoft SQL Server Management Studio,則可以右鍵單擊您的表 - >選擇腳本表爲 - >DROP並創建表爲 - >新建查詢編輯器窗口。這將創建用於刪除表和創建新表的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; 

它會告訴你還有誰需要表作者正常工作。您也可以嘗試將其與其他事物一起使用,而不僅僅是表格。這是一個有用的小東西,以確保在丟棄東西之前不會造成太多問題。

相關問題