ошибка «в базах данных уже есть имя объекта»

#sql-server #ddl

#sql-server #ddl

Вопрос:

Можете ли вы помочь мне исправить ошибку

В базе данных уже есть имя объекта

Мой код:

 CREATE DATABASE DIEMTHAMQUAN

USE DIEMTHAMQUAN


CREATE TABLE QUOCGIA
(
    MAQG NCHAR(5) NOT NULL,
    TENQG NCHAR(20) NULL,
    TD NCHAR(5) NOT NULL,
    DS INT NULL,
    DT REAL NULL
    CONSTRAINT PK_QUOCGIA PRIMARY KEY(MAQG,TD)
)

CREATE TABLE TINHTHANH
(
    MATT NCHAR(5) NOT NULL,
    QG NCHAR(5) NULL,
    DS INT NULL,
    DT REAL NULL,
    TENTT NCHAR(30) NULL
    CONSTRAINT PK_TINHTHANH PRIMARY KEY(MATT)
)

CREATE TABLE DIEMTHAMQUAN
(
    MADTQ NCHAR(10) NOT NULL,
    TENDTQ NCHAR(30) NULL,
    TT NCHAR(5) NULL,
    QG NCHAR(5) NULL,
    DD NCHAR(50) NULL
    CONSTRAINT PK_DIEMTHAMQUAN PRIMARY KEY(MADTQ)
)

ALTER TABLE TINHTHANH 
    ADD CONSTRAINT FK_TT_QG FOREIGN KEY(QG) REFERENCES QUOCGIA(MAQG)
ALTER TABLE DIEMTHAMQUAN 
    ADD CONSTRAINT FK_DTQ_TT FOREIGN KEY(TT) REFERENCES TINHTHANH(MATT)

--insert QUOCGIA(MAQG,TENQG,TD,DS,DT) 
INSERT INTO QUOCGIA(MAQG, TENQG, TD, DS, DT) 
VALUES (N'QG001', N'VIỆT NAM', N'TT001', CAST(N'115000000' AS INT), CAST(N'331688.00' AS REAL)),
       (N'QG002', N'NHẬT BẢN', N'TT003', CAST(N'129500000' AS INT), CAST(N'337834.00' AS REAL))


--insert  TINHTHANH(QG,MATT,TENTT,DS,DT)
INSERT INTO TINHTHANH(QG, MATT, TENTT, DS, DT) 
VALUES (N'QG001', N'TT001', N'HÀ NỘI', CAST(N'2500000' AS INT), CAST(N'927.39' AS REAL)),
       (N'QG001', N'TT002', N'HUẾ', CAST(N'5344000' AS INT), CAST(N'5009.00' AS REAL)),
       (N'QG002', N'TT003', N'TOKYO', CAST(N'12084000' AS INT), CAST(N'2187.00' AS REAL))
  

Комментарии:

1. Прочитайте ошибку еще раз. Это точно говорит вам, в чем проблема.

2. Перед созданием таблицы проверьте, существует ли она. Google для синтаксиса.

3. Попробуйте прочитать ошибку. Оно уже определено

Ответ №1:

Проблема заключается здесь:

 CREATE TABLE DIEMTHAMQUAN
  

Вы используете то же имя для ‘Базы данных» и присваиваете то же имя ‘таблице’. Если в будущем вы вызовете это ‘DIEMTHAMQUAN’, как Sql-Server (если вы используете это) узнает, что вы ссылаетесь на базу данных или таблицу.

Возможное решение — назвать вашу таблицу ‘tblDIEMTHAMQUAN’.