【发布时间】:2017-06-07 16:52:28
【问题描述】:
我想同时在数据库中创建多个表并将值插入其中。 我正在使用 SQL Server Management Studio。 这是我的代码:
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');
这就是我得到的错误:
数据库“master”中的 CREATE DATABASE 权限被拒绝。
只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表“Categories”中的标识列指定显式值。
如果有人在同一个语句中解释创建多个表并在所有表中插入值的细节,我会很高兴。
【问题讨论】:
-
检查此代码创建数据库电影;使用电影;
-
您使用的是哪个 dbms?您遇到了特定于产品的问题。
-
您有
CategoryName和Notes列,但尝试插入 3 个值:VALUES('Documentary', 'drama', 'some notes')
标签: sql sql-server database create-table