SQL Server’ da Şema Kullanımı

Merve KÜÇÜKDOĞRU
Machine Learning Turkiye
4 min readMar 18, 2023

Herkese merhaba,

Bu yazımda sizlere “SQL Server’ da Şema Kullanımı” konusunu tüm detayları ile anlatmaya çalışacağım.

Konu başlıklarımız sırası ile aşağıdaki gibidir:

  1. Yeni Şema Nasıl Oluşturulur?
  2. Veri Tabanında olan tüm şemalara nasıl bakılır?
  3. Yeni Şemada Tablo Nasıl Oluşturulur?
  4. Başka bir şemada ki tablolar yeni bir şemaya nasıl taşınır?
  5. Şema veri tabanından nasıl kaldırılır?

Hazırsanız başlayalım.

1. Yeni Şema Nasıl Oluşturulur?

İlk olarak yeni bir veri tabanı oluşturalım.

Yeni bir veri tabanı aşağıdaki şekilde oluşturulur.

CREATE DATABASE DatabaseName;

Artık oluşturduğumuz veri tabanına yeni bir şema oluşturabiliriz. Yeni bir şema oluştururken aşağıdaki kod satırlarını kullanabiliriz.

CREATE SCHEMA SchemaName;

Şema oluştururken veri tabanı belirtmezsek SQL Server’ da varsayılan olarak hangi veri tabanı seçili ise o veri tabanına şemamız oluşur.

2. Veri Tabanında olan tüm şemalara nasıl bakılır?

SQL Server’ da bütün şemaları görmek istersek aşağıdaki kod satırını kullanabiliriz ya da çalıştığımız veri tabanında Security → Schemas klasöründen bakabiliriz.

SELECT * FROM sys.schemas;

3. Yeni Şemada Tablo Nasıl Oluşturulur?

Oluşturduğumuz şemaya yeni bir tablo eklemek istediğimizde aşağıdaki kodu kullanabiliriz.

CREATE TABLE SchemaName.TableName(

ColumnName1 datatype,

ColumnName2 datatype,

);

Müşteriler adında bir tablo oluşturmak istersek genel kodumuz aşağıdaki şekilde olacaktır.

✔ Burada önemli olan şema adını belirtmemizdir, belirtmediğimiz takdirde yeni oluşturulan şemaya değil veri tabanı kullanıcısında tanımlı olan varsayılan şema altına tablomuz oluşur.

→ Kullanıcımızda tanımlı olan varsayılan şemayı Databases → Security → Logins → User → Properties → User Mapping alanından görebiliriz. İstersek buradan veri tabanında ki varsayılan şemayı da değiştirebiliriz.

Oluşan tablomuzu görmek istersek aşağıdaki şekilde bakabiliriz.

4. Başka bir şemada ki tablolar yeni bir şemaya nasıl taşınır?

SQL Server’da bir şemada bulunan tablolar, prosedürler, view nesneleri başka bir şemaya transfer edilebillir. Bunun için aşağıdaki kod satırı kullanılabilir.

ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.ObjectName;

Yeni bir şema oluşturup bir önceki oluşturduğumuz şemada ki tabloyu yeni şemamıza transfer işlemi yapalım.

Şimdi Invoice şemamıza Sales şemasında bulunan Customers tablosunu taşıyalım.

Daha sonra Sales şeması altında ki GetAllCustomer prosedürünü taşıyalım.

Şimdi test etmek amacıyla Sales şeması altında bulunan GetAllCustomer prosedürünü çalıştırmayı deneyebiliriz.

Görüldüğü gibi prosedür bulunamamıştır. Şimdi son aşama olarak Invoice şeması altında ki GetAllCustomers prosedürünü çalıştırmayı deneyelim.

Bu hatayı almamızın sebebi ise Invoice.GetAllCustomers prosedürü içinde Sales.Customers tablosunu bulamamasıdır.

Aynı şekilde prosedür içinde ki tabloları da yeni şemaya göre revize etmemiz gerekecektir.

5. Şema veri tabanından nasıl kaldırılır?

SQL Server’da var olan bir şemayı veri tabanından tamamen silmek istersek aşağıdaki kod satırını kullanırız.

Veri tabanından silmek istediğimiz şemaya bağlı tablo, prosedür, view vs. olduğunda şemayı veri tabanından silemeyiz. Öncelikle şemada var olan tablo, prosedür, view vs. olan nesneleri veri tabanından kaldırırız, daha sonra şemayı veri tabanından kaldırırız.

İlk olarak tabloyu veri tabanından kaldıralım.

Şemaya bağlı bütün nesneleri kaldırmamız gerekmektedir. Daha sonra şemayı kaldırabiliriz.

Bütün nesnelerimizi veri tabanından kaldırdıktan sonra şemamızı da kaldırabiliriz.

Zaman ayırıp okuduğunuz için teşekkür ederim. Umarım faydalı olmuştur. Bir sonraki yazıda görüşmek üzere…

Sağlıcakla kalın😊

--

--