SQL SERVER – QUOTED_IDENTIFIER ON/OFF

SQL Server’da QUOTED_IDENTIFIER özelliği ile SQL Server için ayrılmış özel kelimeleri kullanarak nesne oluşturmamıza imkan sağlar. “Table,Group,Alter” vb. SQL Server için rezerve edilmiş kelimeleri kullanmamıza imkan sağlayan bir özelliktir.
SQL SERVER için rezerve edilen kelimelerin listesi için : msdn

SQL Server QUOTED_IDENTIFIER özelliği varsayılan olarak açık (ON) durumdadır. Özelliğin daha iyi anlaşılması için bu özelliği önce kapatıp (OFF) data sonra SQL server için rezerve edilmiş bir kelime ile tablo oluşturmaya çalışacağım.

[sql]

SET QUOTED_IDENTIFIER OFF

CREATE TABLE "TABLE"
(
"int" int,
"datetime" datetime
)

[/sql]

QUOTED_IDENTIFIER_OFF

QUOTED_IDENTIFIER özelliği kapalı iken bize Sql Server için rezerve edilmeş kelime ile tablo oluşturmamıza izin vermiyor. QUOTED_IDENTIFIER özellğini açıp tekrar deneyelim.

[sql]

SET QUOTED_IDENTIFIER ON

CREATE TABLE "TABLE"
(
"int" int,
"datetime" datetime
)

[/sql]

QUOTED_IDENTIFIER_ON

QUOTED_IDENTIFIER özelliğini açtıktan sonra Sql Server için rezerve edilen kelime olan “TABLE” kelimesi ile tablo oluşturmamıza imkan sağlamıştır.  Dikkat ettiyseniz tablodak kolon isimlerini de veri türü ismi ile aynı olacak şekilde kullanmamıza da imkan sağlıyor. Şimdi rezerve edilen bir kelime ile oluşturmuş olduğumuz tabloya kayıt ekleyip sorgulayalım.

[sql]

SET QUOTED_IDENTIFIER ON

INSERT INTO "TABLE" VALUES(1,GETDATE())

SELECT * FROM "TABLE"

[/sql]

QUOTED_IDENTIFIER_INSERT_SELECT

Oluşturduğumuz tablomuza kayıt ekleyip sorgulama işlemini gerçekleştirdik. Genelde SQL Server için rezerve edilen kelimeler ile tablo oluşturup projenizde kullanmak istemezsiniz.  Yine de böyle bir özelliğin olduğunu bilmeniz faydalı olacaktır.

NOT: QUOTED_IDENTIFIER özelliği varsayılan olarak ON durumundadır.

EK Bilgi: QUOTED_IDENTIFIER  özelliği ile çift tırnak kullanarak SQL Server için rezerve edilmiş kelimeleri kullanmamıza imkan sağlıyor. QUOTED_IDENTIFIER  özelliği ON / OFF farketmeksizin rezerve edilmiş kelimeleri kullanmak isterseniz “[ ]” kullanabilirsiniz.

[sql]

CREATE TABLE [TABLE]
(
[int] int,
[datetime] datetime
)

INSERT INTO [TABLE] VALUES (1,GETDATE())

SELECT * FROM [TABLE]

[/sql]

create_table

Faydası olması dileğiyle.

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.