MSSQL Server Veritabanı ve Nesnelerin Scriptini Almak

MSSQL Server

Bu makalede Veritabanı ve Veritabanı nesnelerin script’i nasıl alınır konusuna değinmiş olacağız. Bazen kullanıcılar table,stored procedure,view veya herhangi bir nesne hakkında işlem yapmadan önce yedeğinin durması  açısından  script’ini almamızı isteyebilir. Bu yöntem için aşağıdaki adımlar izlenir. Biz veritabanımız altında bulunan bir tablonun script’ini almış olacağız. Sizde isterseniz aşağıdaki yöntemleri kullanarak başka nesnelerin(View,Functions) script’ini alabilirsiniz.

Script’ini alacağımız tablomuzun üzerine sağ tıklanıp Script Table as> CREATE To> New Query Editor Window denilerek tablomuzun script’ini alabiliriz.

Bu yapı ile tablomuzun sadece Scheme yapısını almaktayız. Tablomuz boş bir şekilde oluşur. Tablomuzu içerisindeki verilerle birlikte almak istersek Generate Script yöntemiyle alınması gerekmektedir.

Bunun için veritabanı üzerine sağ tıklayıp Tasks > Generate Scripts diyoruz.

Gelen ekranda herhangi bir değişiklik yapmıyoruz. Do not show this page again seçeneği sadece bundan sonraki generate script işlemleri için bu ekranı gösterme anlamındadır. Seçmeyip Next diyiyoruz.

Gelen ekranda ilk seçenek ile veritabanı ve altındaki tüm nesnelerin script’ini almış olacağız. Eğer tüm veritabanı script’ini almak istiyorsanız ilk seçeneği seçebiliriz. İkinci seçenek ise veritabanı altında bulunan nesnelerden sadece belirlediğimiz kısmın script’ini alabiliriz.

Biz sadece belirlemiş olduğumuz tablonun script’ini almak istediğimiz için ikinci seçenek olan Select specifiic database objects seçeneğini seçiyoruz.

Tables sekmesi altında script’ini alacağımız Person.Person tablomuzu seçtikten sonra Next deyip bir sonraki adıma geçiyorum.

Gelen ekranda bizim için önem taşıyan Advanced sekmesine tıklıyoruz.

Gelen ekranda Types of data to script kısmında tablomuz için sadece data’nın mı alınacağı, tablomuzun scheme ve data olarak mı alınacağı veya sadece scheme olarak alınacağını belirleyebiliriz.  Bu yapı tüm veritabanımızın generate script’ini aldığımızda da geçerlidir. İlgili seçimi yaptıktan sonra Ok butonuna basıyoruz.

“Generate Scripts” seçenekleri arasında günlük DBA operasyonlarında en sık kullanılan ve kritik olan ayarlar şunlardır:

  • Check for object existence: Nesneyi oluşturmadan önce IF EXISTS kontrolü ekler; script’in hata vermeden tekrar tekrar çalıştırılabilmesi için genellikle True yapılır.
  • Script DROP and CREATE: Mevcut nesneyi silip yeniden mi oluşturacağı yoksa sadece mi oluşturacağını belirler; “Script DROP and CREATE” seçeneği temiz bir kurulum için sık tercih edilir.
  • Script for Server Version: Script’in çalışacağı hedef sunucu sürümünü belirler; uyumluluk hatalarını önlemek için hedef sunucuya göre (örneğin SQL Server 2022) ayarlanmalıdır.
  • Script USE DATABASE: Script’in başına USE [DatabaseName] komutu ekler; yanlış veritabanında işlem yapmamak için genellikle True kalması güvenlidir.
  • Types of data to script: Sadece tablo yapısını mı (Schema only), sadece veriyi mi (Data only) yoksa her ikisini mi (Schema and data) alacağınızı belirler; en çok “Schema only” veya veri aktarımı için “Schema and data” kullanılır.
  • Script Logins: Veritabanı seviyesindeki nesneleri taşırken bunlara bağlı kullanıcı girişlerini de dahil etmek için kullanılır; sunucu göçlerinde (migration) True yapılır.
  • Script Object-Level Permissions: Nesneler üzerindeki yetki tanımlarını (GRANT/REVOKE) korumak için True seçilir.
  • Script Statistics: Performans iyileştirmeleri için mevcut istatistiklerin de taşınmasını sağlar; büyük veritabanı taşımalarında faydalıdır.
  • Script Indexes: Tablo ile birlikte index yapılarının da gelmesi için True (varsayılan) olmalıdır.

Tekrar önceki ekrana geldiğimizde alacağımız verinin nasıl alınacağınız belirliyoruz. Burada Save as notebook seçeneği ile bilgisayarımızda herhangi bir dosya altına alacağımızı ya da Save as script file seçersek çıktının sql uzantılı oluşacağını belirleyebiliriz.

Ben SSMS üzerinde script’ini almak için son seçenek olan Open in new query window seçeneğini seçiyorum. Save to clipboard dersek ctrl+c yapmış gibi oluruz ve ifadeyi istediğimiz Query’e ctrl+v ile yapıştırabiliriz. Next deyip bir sonraki bölüme geçiyorum.

Gelen ekranda ön bilgilendirmeyi gördükten sonra Next diyiyorum.

Başarılı bir şekilde işlemimi gerçekleştirmiş oluyorum.

Yukarıda bahsetmiş olduğum Generate Script’ile veritabanı veya nesneleri hakkında işlemler yapılabilir.

Not: Partition yapılmış tabloların script’i sadece Generate Script yöntemiyle alınır. Makalenin başında tabloya sağ tıklayıp almış olduğum yöntem tablonun partition’lı halini vermeyecektir. Veritabanı altında bulunan tabloların hangisinin partition’lı yapısını öğrenmek istersek ilgili linkteki makalede bulabilir.

Bu makalede Veritabanı ve Nesnelerin Scriptinin nasıl alındığını görmüş olduk.

Başka bir makalede görüşmek dileğiyle.

Onlar ” Yolda Kalmışlara Yardım Ederler. ” Bakara-177 

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir