Forum
Merhaba.
Sql Server 2008 management studio üzerinde sql öğrenmeye çalışıyorum.netten aldığım bir pdf teki örneği yapmaya çalışıyorum ancak hata veriyor.Kodu aşağıda veriyorum.Nerede hata yaptığımı söylermisiniz ? şimdiden teşekkür ederim.
Verdiği hata:
Msg 156, Level 15, State 1, Line 24
Incorrect syntax near the keyword 'CONSTRAINT'.
Msg 156, Level 15, State 1, Line 46
Incorrect syntax near the keyword 'CONSTRAINT'.
Msg 156, Level 15, State 1, Line 66
Incorrect syntax near the keyword 'CONSTRAINT'.
Msg 156, Level 15, State 1, Line 75
Incorrect syntax near the keyword 'CONSTRAINT'.
create database SanalSite on
(
Name='SanalSite',
Filename='C:\Databases\Sanalsite.mdf',
Size=10MB,
Maxsize=unlimited,
Filegrowth=2mb
)
LOG ON
(
Name='SanalSite.log',
Filename='C:\Databases\SanalSite\Site_log.ldf',
Size=2MB,
Maxsize=2GB,
Filegrowth=10
)
create table Kategori
(
KategoriId int NOT NULL,
KategoriAd nvchar(50) NULL,
UstkategoriId int NULL,
CONSTRAINT PK_Kategori PRIMARY KEY (KategoriId)
CONSTRAINT FK_Kategori FOREIGN KEY (UstKategoriId)
References Kategori (KategoriId)
)
create table Urun
(
UrunId int NOT NULL,
UrunAd nvarchar(50) NULL,
KategoriId int NULL,
CONSTRAINT PK_Urun PRIMARY KEY (UrunId)
)
create table Ozellik
(
OzellikId int NOT NULL,
OzellikAd nvarchar(50) NULL,
CONSTRAINT PK_Ozellik PRIMARY KEY (OzellikId)
)
create table UrunOzellik
(
UrunId int NOT NULL,
OzellikId int NOT NULL,
Aciklama nvarchar(50) NOT NULL,
CONSTRAINT PK_UrunOzellik PRIMARY KEY (UrunID,OzellikId)
CONSTRAINT FK_UrunOzellik_Ozellik FOREIGN KEY (OzellikId)
references Ozellik(OzellikId)
CONSTRAINT FK_UrunOzellik_Urun FOREIGN KEY (UrunId)
references Urun (UrunId)
)
create table Musteri
(
MusteriId int NOT NULL,
AdSoyad nvarchar(50) NULL,
Adres nvarchar(100) NULL,
TelNo char(11) NULL,
CONSTRAINT PK_Musteri PRIMARY KEY (MusteriId)
)
create table Siparis
(
SiparisId int NOT NULL,
MusteriId int NULL,
Tarih smalldatetime NULL,
Tutar smallmoney NULL,
CONSTRAINT PK_Siparis PRIMARY KEY (SiparisId)
CONSTRAINT FK_Siparis_Musteri FOREIGN KEY (MusteriId)
references Musteri (MusteriId)
)
create table SiparisUrun
(
SiparisId int NOT NULL,
UrunId int NOT NULL,
Adet int NULL,
CONSTRAINT PK_SiparisUrun PRIMARY KEY (SiparisId,UrunId)
CONSTRAINT FK_SiparisUrun_Siparis FOREIGN KEY (SiparisId)
references Siparis (SiparisId)
CONSTRAINT FK_SiparisUrun_Urun FOREIGN KEY (UrunId)
references Urun (UrunId)
)
Hata verdiği satırların bir üstündeki satırların sonuna virgül koymalısın.
Hata mesajlarına sırayla çift tıkla ve bir satırı seçili yapacak, o satırın üstündeki satırın sonuna virgül koy. Yada satır numarasından da yapabilirsin.
Saygılar.
Verdiğiniz cevap için teşekkür ederim.Şimdide şu şekilde bir hata veriyor.
Msg 2715, Level 16, State 7, Line 18
Column, parameter, or variable #2: Cannot find data type nvchar.
hata koduna çift tıkladığım zaman şu satırı işaret ediyor:
create table Kategori
Ne yapmalıyım ?
son verdiği hatayı çözdüm teşekkürler.Benim sormak istediğim başka bir husus daha vardı.
create database SanalSite on
(
Name='SanalSite',
Filename='C:\Databases\Sanalsite.mdf',
Size=10MB,
Maxsize=unlimited,
Filegrowth=2mb
)
LOG ON
(
Name='SanalSite.log',
Filename='C:\Databases\SanalSite\Site_log.ldf',
Size=2MB,
Maxsize=2GB,
Filegrowth=10
)
Bu kodları en başa yazdığım halde neden t-sql ile database oluşturamadım ? object explorer içinde database sağ tıklayarak new database dediğim zaman ancak oluşturabildim.Birde t-sql kodlarla bir database oluşturmadan önce burada belittiğim dizin içerisinde dosyamı oluşturmam lazım ? (SanalSite.mdf ile Site_log.ldf dosyaları için)
Hocam kodlar sorunsuz. Yalniz belirttiginiz klasörler daha onceden oluşturulmuş olmalı.
Ayrıca bu kodun en başına USE Master sonuna da GO ifadesi ekleyip denermisin.
son verdiği hatayı çözdüm teşekkürler.Benim sormak istediğim başka bir husus daha vardı.
create database SanalSite on
(
Name='SanalSite',
Filename='C:\Databases\Sanalsite.mdf',
Size=10MB,
Maxsize=unlimited,
Filegrowth=2mb
)
LOG ON
(
Name='SanalSite.log',
Filename='C:\Databases\SanalSite\Site_log.ldf',
Size=2MB,
Maxsize=2GB,
Filegrowth=10
)
Bu kodları en başa yazdığım halde neden t-sql ile database oluşturamadım ? object explorer içinde database sağ tıklayarak new database dediğim zaman ancak oluşturabildim.Birde t-sql kodlarla bir database oluşturmadan önce burada belittiğim dizin içerisinde dosyamı oluşturmam lazım ? (SanalSite.mdf ile Site_log.ldf dosyaları için)
C:\Databases\ klasöründe sql server'ın yazma yetkisi var mı? Bir de bu sorguyu çalıştırmaya çalışan kullanıcının db oluşturma yetkisi var mı?
Gui kullanarak DB oluşabildiğine göre muhtemelen yetkilerde bir problem yok diye düşünüyorum hocam.
Merhaba,
Spesifik bir lokasyonda T-SQL kullanarak veritabanını oluşturmak için kullanmanız gereken kod ;
USE [master]
GO
CREATE DATABASE [AdventureWorks] ON PRIMARY
( NAME = N'AdventureWorks_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf' , SIZE = 167872KB , MAXSIZE = UNLIMITED, FILEGROWTH = 16384KB )
LOG ON
( NAME = N'AdventureWorks_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Log.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 16384KB )
GO
Ve ya ;
USE master
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
yukarıdaki yazılı olan bazı yerleri kendinize göre değiştirip tekrar deneyiniz.
Saygılar,
Gui kullanarak DB oluşabildiğine göre muhtemelen yetkilerde bir problem yok diye düşünüyorum hocam.
Çok haklısınız. Sizin önerdiğiniz yöntem işe yaramazsa ek bir kontrol olarak yazdım zaten. Elle oluşturulabiliyorsa klasör zaten vardır diye [;)] Kolay gelsin
Tüm üstadlara ilgilerinden dolayı teşekkür ederim.
Yazmış olduğunuz komutları kullanıp denedikten sonra sonucu sizlerle paylaşacağım.
SQL Server Management Studio aracını windows authentication ile açıyorum.Windows user da Administrator hakları mevcut.Gui ile database oluşturabiliyorum ancak bunu varsayılan olarak C:\Program Files\Microsoft SQL Server\MSSQL10.PCADI\MSSQL\DATA altına atıyor sanırım..Sizin vermiş olduğunuz ;
Use Master
Go
komutlarından sonra belirttiğimiz path içinde oluşturacaktır değilmi ?
evet kodda belirttiğin pathte oluşacak. Ama pathte yzdıpğın klasörler daha önceden oluşturulmuş olmalı.
Hemen bir deneme yaptım.Oldu.Teşekkürler.Peki,
Use Master kodundaki master yerine başka bir şey yazamazmıyız ? bu referans içinmi yoksa kopyasınımı oluşturuyor ?
Veritabanı bilgileri, kullanıcı bilgileri vs master dbsinde tutulur. Use master dememizin sebebide o. Master yerine başka bir db yazamayız. Zaten hata verir.
Saygılar.