因此,我设计了一个“ CD shop数据库”,并尝试为其所有元素编写一个查询,但是由于某种原因,我无法在一个查询中创建表并将表添加到该数据库。这是我的查询:
CREATE DATABASE CDCI
ON PRIMARY(
Name = cddukkan_data,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.VERITABANIM\MSSQL\DATA\cdci.mdf',
Size = 16 MB,
FileGrowth = 1 MB,
MaxSize = 1 GB
)
LOG ON(
Name = cddukkan_log,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.VERITABANIM\MSSQL\DATA\cdci.ldf',
Size = 8 MB,
FileGrowth = 5%,
MaxSize = 512 MB
)
USE CDCI >An error occurs here
GO
CREATE TABLE Turler(
TurID INT IDENTITY(1, 1) NOT NULL,
TurAdi NVARCHAR(10) NOT NULL,
PRIMARY KEY(TurID),
UNIQUE(TurID)
)
CREATE TABLE Yonetmenler(
YonetmenID INT IDENTITY(1, 1) NOT NULL,
YonetmenAdi NVARCHAR(10) NOT NULL,
YonetmenSoyadi NVARCHAR(10) NULL,
DogumYili NCHAR(4),
CONSTRAINT DogumYili CHECK(DogumYili LIKE '19__' OR (DogumYili LIKE '20__' AND DogumYili < (YEAR(GETDATE()) - 18))),
Cinsiyet NCHAR(5),
CONSTRAINT Cinsiyet CHECK(Cinsiyet LIKE '[Ee]%' OR Cinsiyet LIKE '[Kk]%'),
PRIMARY KEY(YonetmenID),
UNIQUE(YonetmenID)
)
CREATE TABLE Raflar(
RafID INT IDENTITY(1, 1) NOT NULL,
RafTuru INT FOREIGN KEY REFERENCES Turler(TurID) NOT NULL,
PRIMARY KEY(RafID),
UNIQUE(RafID)
)
CREATE TABLE Filmler(
FilmID INT IDENTITY(1, 1) NOT NULL,
FilmAdi NVARCHAR(10) NOT NULL,
TurID INT FOREIGN KEY REFERENCES Turler(TurID) NOT NULL,
YonetmenID INT FOREIGN KEY REFERENCES Yonetmenler(YonetmenID) NOT NULL,
RafID INT FOREIGN KEY REFERENCES Raflar(RafID) NOT NULL,
Fiyat MONEY NOT NULL,
PRIMARY KEY(FilmID),
UNIQUE(FilmID)
)
CREATE TABLE Musteriler(
MusteriID INT IDENTITY(1, 1) NOT NULL,
MusteriAdi NVARCHAR(10) NOT NULL,
MusteriSoyadi NVARCHAR(10) NOT NULL,
Adresi NVARCHAR(20),
Telefon NVARCHAR(10),
CONSTRAINT Telefon CHECK(Telefon NOT LIKE '0%'),
PRIMARY KEY(MusteriID)
)
CREATE TABLE Oyuncular(
OyuncuID INT IDENTITY(1, 1) NOT NULL,
OyuncuAdi NVARCHAR(10) NOT NULL,
OyuncuSoyadi NVARCHAR(10) NULL,
DogumYili NCHAR(4),
CONSTRAINT DogumYili CHECK(DogumYili LIKE '19%' OR DogumYili < YEAR(GETDATE())),
PRIMARY KEY(OyuncuID),
UNIQUE(OyuncuID)
)
CREATE TABLE Satislar(
SatisID INT IDENTITY(1, 1) NOT NULL,
FilmID INT FOREIGN KEY REFERENCES Filmler(FilmID) NOT NULL,
MusteriID INT FOREIGN KEY REFERENCES Musteriler(MusteriID) NOT NULL,
SatisAdedi INT NOT NULL
)
CREATE TABLE FilmOyuncu(
FilmID INT FOREIGN KEY REFERENCES Filmler(FilmID) NOT NULL,
OyuncuID INT FOREIGN KEY REFERENCES Oyuncular(OyuncuID) NOT NULL
)
USE CDCI >An error occurs here
GO
CREATE TRIGGER [TelefonKontrol]
ON [Musteriler]
FOR INSERT
AS
DECLARE @tel NVARCHAR(10)
SELECT @tel = Telefon FROM INSERTED
IF @tel LIKE '0%'
BEGIN
PRINT 'Lütfen telefon numarasýný baþýna 0 rakamý koymayýnýz.'
ROLLBACK TRAN
END
GO
CREATE TRIGGER [FilmRafTuruUyumu]
ON [Filmler]
FOR INSERT
AS
DECLARE @filmTuru NVARCHAR(10)
DECLARE @rafTuru NVARCHAR(10)
DECLARE @rafID NVARCHAR(10)
SELECT @rafID = RafID FROM INSERTED
SELECT @filmTuru = TurID FROM INSERTED
SELECT @rafTuru = Raflar.RafTuru FROM INSERTED
INNER JOIN Raflar ON Raflar.RafID = @rafID
IF @rafTuru <> @filmTuru
BEGIN
PRINT 'Lütfen film uygun rafa yerleþtiriniz!'
ROLLBACK TRAN
END
GO
注意:我对Database知识并不陌生,因为我得到了其中的一些课程,但这些课程都是非常基础的课程和基于理论的课程。因此,您可以将我视为“入门者”。任何帮助,提示和建议都可以使用!
答案 0 :(得分:1)
您需要检查mdf和ldf文件的位置路径。
CREATE DATABASE CDCI
ON PRIMARY(
Name = cddukkan_data,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.VERITABANIM\MSSQL\DATA\cdci.mdf',
Size = 16 MB,
FileGrowth = 1 MB,
MaxSize = 1 GB
)
LOG ON(
Name = cddukkan_log,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.VERITABANIM\MSSQL\DATA\cdci.ldf',
Size = 8 MB,
FileGrowth = 5%,
MaxSize = 512 MB
)
go
USE CDCI -->An error occurs here
GO
CREATE TABLE Turler(
TurID INT IDENTITY(1, 1) NOT NULL,
TurAdi NVARCHAR(10) NOT NULL,
PRIMARY KEY(TurID),
UNIQUE(TurID)
)
CREATE TABLE Yonetmenler(
YonetmenID INT IDENTITY(1, 1) NOT NULL,
YonetmenAdi NVARCHAR(10) NOT NULL,
YonetmenSoyadi NVARCHAR(10) NULL,
DogumYili NCHAR(4),
CONSTRAINT DogumYili CHECK(DogumYili LIKE '19__' OR (DogumYili LIKE '20__' AND DogumYili < (YEAR(GETDATE()) - 18))),
Cinsiyet NCHAR(5),
CONSTRAINT Cinsiyet CHECK(Cinsiyet LIKE '[Ee]%' OR Cinsiyet LIKE '[Kk]%'),
PRIMARY KEY(YonetmenID),
UNIQUE(YonetmenID)
)
CREATE TABLE Raflar(
RafID INT IDENTITY(1, 1) NOT NULL,
RafTuru INT FOREIGN KEY REFERENCES Turler(TurID) NOT NULL,
PRIMARY KEY(RafID),
UNIQUE(RafID)
)
CREATE TABLE Filmler(
FilmID INT IDENTITY(1, 1) NOT NULL,
FilmAdi NVARCHAR(10) NOT NULL,
TurID INT FOREIGN KEY REFERENCES Turler(TurID) NOT NULL,
YonetmenID INT FOREIGN KEY REFERENCES Yonetmenler(YonetmenID) NOT NULL,
RafID INT FOREIGN KEY REFERENCES Raflar(RafID) NOT NULL,
Fiyat MONEY NOT NULL,
PRIMARY KEY(FilmID),
UNIQUE(FilmID)
)
CREATE TABLE Musteriler(
MusteriID INT IDENTITY(1, 1) NOT NULL,
MusteriAdi NVARCHAR(10) NOT NULL,
MusteriSoyadi NVARCHAR(10) NOT NULL,
Adresi NVARCHAR(20),
Telefon NVARCHAR(10),
CONSTRAINT Telefon CHECK(Telefon NOT LIKE '0%'),
PRIMARY KEY(MusteriID)
)
CREATE TABLE Oyuncular(
OyuncuID INT IDENTITY(1, 1) NOT NULL,
OyuncuAdi NVARCHAR(10) NOT NULL,
OyuncuSoyadi NVARCHAR(10) NULL,
DogumYili NCHAR(4),
CONSTRAINT DogumYili CHECK(DogumYili LIKE '19%' OR DogumYili < YEAR(GETDATE())),
PRIMARY KEY(OyuncuID),
UNIQUE(OyuncuID)
)
CREATE TABLE Satislar(
SatisID INT IDENTITY(1, 1) NOT NULL,
FilmID INT FOREIGN KEY REFERENCES Filmler(FilmID) NOT NULL,
MusteriID INT FOREIGN KEY REFERENCES Musteriler(MusteriID) NOT NULL,
SatisAdedi INT NOT NULL
)
CREATE TABLE FilmOyuncu(
FilmID INT FOREIGN KEY REFERENCES Filmler(FilmID) NOT NULL,
OyuncuID INT FOREIGN KEY REFERENCES Oyuncular(OyuncuID) NOT NULL
)
USE CDCI -->An error occurs here
GO
CREATE TRIGGER [TelefonKontrol]
ON [Musteriler]
FOR INSERT
AS
DECLARE @tel NVARCHAR(10)
SELECT @tel = Telefon FROM INSERTED
IF @tel LIKE '0%'
BEGIN
PRINT 'Lütfen telefon numarasýný baþýna 0 rakamý koymayýnýz.'
ROLLBACK TRAN
END
GO
CREATE TRIGGER [FilmRafTuruUyumu]
ON [Filmler]
FOR INSERT
AS
DECLARE @filmTuru NVARCHAR(10)
DECLARE @rafTuru NVARCHAR(10)
DECLARE @rafID NVARCHAR(10)
SELECT @rafID = RafID FROM INSERTED
SELECT @filmTuru = TurID FROM INSERTED
SELECT @rafTuru = Raflar.RafTuru FROM INSERTED
INNER JOIN Raflar ON Raflar.RafID = @rafID
IF @rafTuru <> @filmTuru
BEGIN
PRINT 'Lütfen film uygun rafa yerleþtiriniz!'
ROLLBACK TRAN
END
GO