So i designed a 'CD shop Database' and tried to write one query for all of it's elements but for some reason i can't create and add tables to that Database in one query. Here is my query :
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
NOTE : I'm not new to the Database stuff because i got some classes of it but those were very basic level and theory-based classes. So you can consider me as 'starter'. Any helps, tips and suggestions are appriciated!