SQL Server 2012 Yenilikler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SQL Server 2012 Yenilikler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

20 Şubat 2015 Cuma

SQL Server 2012 Yenilikler-Contained Database


Bugün sizlere SQL Server 2012 ile yeni gelen bir özellik olan Contained Database özelliğinden bahsetmek istiyorum. Veritabanı yöneticileri için en önemli problemlerden biriside veritabanlarını bir sistemden diğer sisteme taşınmasıdır. Bulut bilişimin son derece revaçta olduğu bu dönemde bu taşıma  işlemi gerçekten DBAler için problem olmaktadır.  Bu taşıma işlemi backup-restore veya attach-detach kullanılarak gerçekleştirilir.

Bu taşıma işlemi sırasında veriler taşınırken sistem seviyesindeki yapılandırmalar aktarılamamaktadır. Contained database yeniliği ile sistem seviyesindeki yapılandırmalarda taşınabilmektedir.

Bulut bilişimin giderek revaçta olduğu günümüzde SQL Server taşıma işlemlerini kolaylaştırmak için Contained Database özellliğini çıkartırken Oracle ise 12c ile birlikte Multitenant teknolojisi çıkarmıştır.

Biz bu makalede Oracle teknolojisi üzerine girmeyeceğiz sadece Sql Server 2012 ile gelen bir özellik olan Contained Database teknolojisinden bahsedeceğiz.

Contained Database, veritabanında sistemde tutulması gereken tüm yapılandırmanın veritabanı üzerinde tutulduğu veritabanı modelidir.  Bütün metadata, yapılandırma ve security ayarları database üzerinde tutulduğu için sunucu bağımlılığı yoktur. Bu sebeble Contained Veritabanları bir sunucudan başka bir sunucuya kolaylıkla ve problemsiz olarak taşınabilir.

Contained Database özelliğini kullanabilmemiz için bu özelliğin aktif hale getirilmesi gerekmektedir. Bu işlem için T-SQL kodlarını kullandığımız gibi Sql Server Management Studio  kullanabiliriz.


 
Yukarıdaki ekranda Contained Database nasıl aktif hale getirildiği T-SQL kodu kullanılarak yaptık. Burada öncelikle Contained Database özelliği advanced bir özellik olduğu için advanced options özelliğini aktif hale getiriyoruz. Daha sonra Contained Database Authentication True hale getiriyoruz. Ve son olarak show advanced options seçeneği pasif hale getiriyoruz.






Bu işlemi yukarıdaki ekranda gösterildiği gibi SSMS ile de yapabilmekteyiz. Properties ekranını kullanarak  Enable Contained Database özelliğini TRUE yapabiliyoruz.

Yukarıdaki işlemler sayesinde Server seviyesinde Contained Database özelliğini aktif ettik. Contained bir veritabanı oluşturmak için 2 yöntem kullanmaktayız. Birinci yöntem T-SQL komutu kullanarak oluşturmak ikinci yöntem ise SSMS kullanılarak.

T-SQL Kullanarak Contained Database oluşturma işlemi aşağıdaki gibidir.



SSMS kullanılarak  oluşturmak için ise Database oluşturulduktan sonra Containment Type özelliği None'dan Partial olarak değişitirilerek yapılabilir. Bunun için Database Properties -Options kısmında Containment Type seçerek yapabiliriz.

Mevcut bir veritabanını ise aşağıdaki T-SQL komutu kullanarak Contained veri tabanı durumuna getirebiliriz.

 
Contained Databaselerde veritabanlarına ait özellikler ve metadata bilgileri Database Engine seviyesinde tutulmazlar. Database üzerinde bulunurlar. Bu nedenle oluşturacağımız kullanıcıları veritabanı seviyesinde oluşturmamız gerekir.

7 Eylül 2014 Pazar

SQL Server 2012 Yenilikler-TRY_CONVERT Fonksiyonu

2012 ile gelen fonskiyonlardan bir taneside TRY_CONVERT fonksiyonudur. Veri tipleri arasındaki değişimler için kullanılır.  Dönüştürülme işlemi başarılı olursa değeri döndürür. Eğer dönüştürme işlemi başarısız olursa NULL değer döndürür.

TRY_CONVERT keywordu Level 110 uyumludur.

SELECT
CASE WHEN TRY_CONVERT(float,'Sedat KARAR') IS NULL
THEN 'Cast Failed'
ELSE 'Cast succeeded'
END AS Result;


SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2,'12/31/2010') AS Result


SET DATEFORMAT mdy;
SELECT TRY_CONVERT(datetime2,'12/31/2010') AS Result;


5 Eylül 2014 Cuma

SQL Server 2012 Yenilikler-IFF ve CHOOSE Mantıksal Fonksiyonları

SQL Server 2012 ile beraber gelen IFF ve CHOOSE fonksiyonları ile yazılarıma devam etmek istiyorum.

IFF Fonksiyonu
IFF ifadesi Oracle PL-SQL'de bulunan DECODE fonksiyonuna benzer ancak onun kadar yetenekli değildir. Boolean bir koşulun sonucuna göre  iki durumdan birini geriye değer döndürür. Koşul sağlanıyorsa birinci değer sağlanmıyorsa ikinci değer geriye döndürülür.

DECLARE @a int=45;
DECLARE @b int=40;
SELECT  IFF (@a>@b,'TRUE','FALSE') AS Result;


CHOOSE Fonksiyonu
Choose Fonksiyonu iki veya daha fazla değerin içinden belirtilen sıradaki değeri döndürür.

SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;


SQL Server 2012 Yenilikler-Format Fonksiyonu

SQL Server 2012 ile gelen fonksiyonlardan biriside format fonksiyonudur.  .NET ortamında geçerli olan bütün string formatlama işlemlerinin SQL Serverda geliştirilmesini sağlar. CAST ve CONVERT fonksiyonlarının yerini almıştır. Parasal işlemler, Sayılar ve özellikler tarih formatlarında hayatımızı çok kolaylaştırmaktadır.

FORMAT  ( value , format [,culture] )

A.Basit Format Örneği

DECLARE @d DATETIME='01/01/2011';
SELECT FORMAT (@d,'d','en-US') AS Result;




B.Özel String biçimlendirmede FORMAT Örneği

DECLARE @d DATETIME = GETDATE();
SELECT FORMAT(@d,'dd/MM/yyyy','en-US') AS Result;




Sql Server DateTime Veri Tipindeki Datayı Türkçe Formatında Göstermek

  SQL'de tarihleri farklı formatlarda göstermek için FORMAT fonksiyonunu kullanabilirsiniz. Türkçe kısa tarih formatı genellikle "...