2017-01-23 1 views
-1

Я хочу одновременно создать несколько таблиц в базе данных и вставить в них значения. Я использую SQL Server Management Studio. Вот мой код:Создание нескольких баз данных и вставка в них нескольких значений. SQL

CREATE DATABASE Movies 
CREATE TABLE Directors (
    Id int PRIMARY KEY IDENTITY, 
    DirectorName nvarchar(50) NOT NULL, 
    Notes nvarchar(1000) 
    ); 
INSERT INTO Directors (DirectorName, Notes) 
VALUES ('John', 'some notes'), 
('John', 'some notes'), 
('John', 'some notes'), 
('John', 'some notes'), 
('John', 'some notes'); 
CREATE TABLE Genres (
    Id int PRIMARY KEY IDENTITY, 
    GenreName nvarchar(50) NOT NULL, 
    Notes nvarchar(1000) 
    ); 
INSERT INTO Genres (GenreName, Notes) 
VALUES ('drama', 'some notes'), 
('drama', 'some notes'), 
('drama', 'some notes'), 
('drama', 'some notes'), 
('drama', 'some notes'); 
CREATE TABLE Categories (
    Id int PRIMARY KEY IDENTITY, 
    CategoryName nvarchar(50) NOT NULL, 
    Notes nvarchar(1000) 
    ); 
INSERT INTO Categories (CategoryName, Notes) 
VALUES ('Documentary', 'drama', 'some notes'), 
('Documentary', 'drama', 'some notes'), 
('Documentary', 'drama', 'some notes'), 
('Documentary', 'drama', 'some notes'), 
('Documentary', 'drama', 'some notes'); 
CREATE TABLE Movies (
    Id int PRIMARY KEY IDENTITY, 
    Title nvarchar(50) NOT NULL, 
    DirectorId int NOT NULL, 
    CopyrightYear date, 
    Length int, 
    GenreId int, 
    CategoryId int, 
    Rating int, 
    Notes nvarchar(1000) 
    ); 
INSERT INTO Movies (
    Title, 
    DirectorId, 
    CopyrightYear, 
    Length, 
    GenreId, 
    CategoryId, 
    Rating, 
    Notes) 
VALUES ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'); 

И это ошибка я получаю:

CREATE DATABASE разрешение Отказано в базе данных 'мастер'.
Явное значение для столбца идентификации в таблице «Категории» может быть указано только при использовании списка столбцов, а IDENTITY_INSERT включен.

Я был бы рад, если бы кто-то объяснил особенности создания нескольких таблиц и вставки значений во всех них в одном и том же выражении.

+0

Проверьте этот код CREATE DATABASE Movies; ИСПОЛЬЗОВАТЬ фильмы; – Serg

+0

Какие dbms вы используете? У вас проблемы с продуктом. – jarlh

+0

У вас есть столбцы 'CategoryName' и' Notes', но попробуйте вставить 3 значения: 'VALUES ('Documentary', 'drama', 'some notes')' – Filburt

ответ

0

Вам необходимо выбрать базу данных после ее создания с помощью команды USE. например

CREATE DATABASE Movies 

USE Movies -- You need this line to use the newly created database 

    CREATE TABLE Directors (
     Id int PRIMARY KEY IDENTITY, 
     DirectorName nvarchar(50) NOT NULL, 
     Notes nvarchar(1000) 
     ); 
    INSERT INTO Directors (DirectorName, Notes) 
    VALUES ('John', 'some notes'), 
    ('John', 'some notes'), 
    ('John', 'some notes'), 
    ('John', 'some notes'), 
    ('John', 'some notes'); 
    CREATE TABLE Genres (
     Id int PRIMARY KEY IDENTITY, 
     GenreName nvarchar(50) NOT NULL, 
     Notes nvarchar(1000) 
     ); 
    INSERT INTO Genres (GenreName, Notes) 
    VALUES ('drama', 'some notes'), 
    ('drama', 'some notes'), 
    ('drama', 'some notes'), 
    ('drama', 'some notes'), 
    ('drama', 'some notes'); 
    CREATE TABLE Categories (
     Id int PRIMARY KEY IDENTITY, 
     CategoryName nvarchar(50) NOT NULL, 
     Notes nvarchar(1000) 
     ); 
    INSERT INTO Categories (CategoryName, Notes) 
    VALUES ('Documentary', 'drama', 'some notes'), 
    ('Documentary', 'drama', 'some notes'), 
    ('Documentary', 'drama', 'some notes'), 
    ('Documentary', 'drama', 'some notes'), 
    ('Documentary', 'drama', 'some notes'); 
    CREATE TABLE Movies (
     Id int PRIMARY KEY IDENTITY, 
     Title nvarchar(50) NOT NULL, 
     DirectorId int NOT NULL, 
     CopyrightYear date, 
     Length int, 
     GenreId int, 
     CategoryId int, 
     Rating int, 
     Notes nvarchar(1000) 
     ); 
    INSERT INTO Movies (
     Title, 
     DirectorId, 
     CopyrightYear, 
     Length, 
     GenreId, 
     CategoryId, 
     Rating, 
     Notes) 
    VALUES ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
    ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
    ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
    ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'), 
    ('Dumbo', 1, '1923-07-09', 180, 1, 1, 10, 'some notes'); 
+0

Вот и все. Спасибо! –

Смежные вопросы