SQL Server 2005' te, Replace fonksiyonunu kullandığınızda, bu fonksiyonun aldığı üç parametrenin sağındaki boşluklar otomatik olarak siliniyordu (RTRIM). Fakat SQL Server 2008' deki Replace fonksiyonunda bu boşluklar otomatik olarak silinmiyor. Bu işlemin aynen SQL Server 2005' teki gibi olmasını isteyenler Replace fonksiyonunu şu şekilde kullanabilirler:
REPLACE(RTRIM(parametre1), RTRIM(parametre2), RTRIM(parametre3)).
Microsoft SQL Server ve Microsoft SQL Server ile ilgili diğer uygulamalar, araçlar ve haberlerle ilgili Türkçe içeriği bu günlükte bulabilirsiniz.
5 Kasım 2008 Çarşamba
SQL Server' da noktalı virgül kullanımı
SQL Server' ın sıradaki değil (yani muhtemelen 2011' de çıkacak versiyon değil), ama ondan sonraki SQL Server versiyonunda (muhtemelen SQL Server 2014) T-SQL komutlarının sonuna noktalı virgül koyulması zorunlu olacak.
Bunu şimdiden sizinle paylaşıyorum ki, ileriye dönük projeleriniz için noktalı virgül kullanımına şimdiden başlayın. Aksi takdirde, gelecekteki SQL Server' da uygulamanızı çalıştırırken sorun yaşarsınız. Muhtemelen "daha çook var" diyorsunuzdur, zaten benim de "ileriye dönük" ibaresini vurgulamamın nedeni buydu.
Bunu şimdiden sizinle paylaşıyorum ki, ileriye dönük projeleriniz için noktalı virgül kullanımına şimdiden başlayın. Aksi takdirde, gelecekteki SQL Server' da uygulamanızı çalıştırırken sorun yaşarsınız. Muhtemelen "daha çook var" diyorsunuzdur, zaten benim de "ileriye dönük" ibaresini vurgulamamın nedeni buydu.
SQL Command (SQLCMD)
SQLCMD aracı vasıtasıyla çalıştırdığınız Script' lerde veya komut satırlarında değişkenler kullanabileceğinizi biliyor muydunuz?
Örneğin, "yedek_al.sql" isimli Script' inizin içinde şöyle bir yedek alma komutu olsun:
"BACKUP DATABASE $(Veritabanim) TO DISK=N'D:\SQLYedekler\$(Veritabanim).bak'"
Gördüğünüz gibi, buradaki değişken adı "Veritabanim". Bu değişkene atanacak değer ise, SQLCMD komutuyla "yedek_al.sql" Script dosyası çağırılırken "-v" parametresi ile atanıyor.
Örnek: SQLCMD -E -i yedek_al.sql -v Veritabanim="Muhasebe".
Örneğin, "yedek_al.sql" isimli Script' inizin içinde şöyle bir yedek alma komutu olsun:
"BACKUP DATABASE $(Veritabanim) TO DISK=N'D:\SQLYedekler\$(Veritabanim).bak'"
Gördüğünüz gibi, buradaki değişken adı "Veritabanim". Bu değişkene atanacak değer ise, SQLCMD komutuyla "yedek_al.sql" Script dosyası çağırılırken "-v" parametresi ile atanıyor.
Örnek: SQLCMD -E -i yedek_al.sql -v Veritabanim="Muhasebe".
SQL Command (SQLCMD)
ISQL ve OSQL, SQL Server 2005' ten önce SQL Server Instance' larında Komut İstemcisinden işlem yapmak için kullanılan Komut İstemcisi araçlarıydı. SQL Server 2005 ile birlikte, tamamen yeniden yazılan SQL Command (SQLCMD) Komut İstemci aracı geliştirildi ve OSQL da tedavülden kalkma sürecine girdi ("Deprecated" oldu).
SQLCMD' den önceki araçlar SQL Server Instance' larına ODBC ile bağlanıyorlar ve bu yüzden bir seferde bir Instance' a bağlanabiliyorlardı. Fakat SQLCMD aracı bağlantı için OLE DB kullanıyor ve bu sayede değişik SQL Server Instance' larına bir Script' te birden fazla bağlantı kurabiliyor.
Örnek vermek gerekirse, ODBC ile bağlandığınızda bir Script içerisinde iki farklı SQL Server Instance' ından iki farklı veritabanının yedeğini alamazsınız. Fakat aynı işlem için SQLCMD kullanarak ve Script' inizde de
":CONNECT SQLServerInstanceAdı -E"
komutunu da kullanarak farklı Instance' larda işlem yapabilirsiniz.
SQLCMD' den önceki araçlar SQL Server Instance' larına ODBC ile bağlanıyorlar ve bu yüzden bir seferde bir Instance' a bağlanabiliyorlardı. Fakat SQLCMD aracı bağlantı için OLE DB kullanıyor ve bu sayede değişik SQL Server Instance' larına bir Script' te birden fazla bağlantı kurabiliyor.
Örnek vermek gerekirse, ODBC ile bağlandığınızda bir Script içerisinde iki farklı SQL Server Instance' ından iki farklı veritabanının yedeğini alamazsınız. Fakat aynı işlem için SQLCMD kullanarak ve Script' inizde de
":CONNECT SQLServerInstanceAdı -E"
komutunu da kullanarak farklı Instance' larda işlem yapabilirsiniz.
SQL Server Agent
SQL Server 2005 ve 2008' de, bir kullanıcıyı "sysadmin" yapmadan, bu kullanıcıya iş (Job) oluşturma ve bunu yönetme hakkı verebileceğinizi biliyor muydunuz?
Bunun için, bahsi geçen kullanıcıyı MSDB veritabanındaki üç rolden birine atamanız yeterli.
Rolleri, yetkileri en kısıtlı olandan itibaren yazıyorum:
1) SQLAgentUserRole,
2) SQLAgent ReaderRole,
3) SQLAgentOperatorRole.
Roller hakkında daha fazla bilgi için Books Online' a bakabilirsiniz: http://msdn.microsoft.com/en-us/library/ms188283.aspx
Bunun için, bahsi geçen kullanıcıyı MSDB veritabanındaki üç rolden birine atamanız yeterli.
Rolleri, yetkileri en kısıtlı olandan itibaren yazıyorum:
1) SQLAgentUserRole,
2) SQLAgent ReaderRole,
3) SQLAgentOperatorRole.
Roller hakkında daha fazla bilgi için Books Online' a bakabilirsiniz: http://msdn.microsoft.com/en-us/library/ms188283.aspx
Kaydol:
Kayıtlar (Atom)