Orhan AKDOĞAN > SQL Server

Sorgu sonucu dönen değeri split etmek

Bir kolonda bilginin “Ad Soyad” formatında saklandığını kabul edelim.Bu tek kolonu  adı ve soyadı şeklinde 2 kolon olarak nasıl döndürebiliriz?

Kullanacağımız deyimler:

charindex:
charindex(hangi_karakter,hangi_metin)
Bu kullanım bize “hangi_metin” içinde geçen ilk “hangi_karakter” in soldan sırasını döndürür.

"Sorgu sonucu dönen değeri split etmek", yazısının devamı için tıklayın.

SQL Dosyalarını toplu olarak çalıştırmak

Bazen bir yada daha fazla veritabanında çalıştırılmak üzere bekleyen sorgu dosyalarımız vardır,
bu sorguları tek tek açıp execute etmeniz gerekir ve bu çok sıkıcı gelebilir.

Aşağıdaki sql sorgusu ile, belirli bir dizinde topladığımız “.sql” uzantılı dosyaları toplu olarak execute edebiliriz.
yapmanız gereken dizini ve login bilgilerini girmek. Yanında açıklama bulunan satırları sisteminize uygun olarak girip execute ettiğinizde, dizindeki tüm sql dosyaları çalışmış olacaktır.

Bu işlem “xp_cmdshell” yardımı gerçekleştiğinden öncelikle xp_cmdshell kullanımını Enabled yapmalısınız.
bunu nasıl yapacağımızı anlattığım linkde aşağıdadır.
(daha&helliip;)

“sp_configure” kullanarak “xp_cmdshell” i Enable yapmak

-- Gelişmiş Seçenekleri değişiliğe açıyoruz
EXEC sp_configure 'show advanced options', 1
GO
-- Değişilikliği uyguluyoruz.
RECONFIGURE
GO
-- xp_cmdshell enable yapılıyor.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- yeniden değişikliği uyguluyoruz.
RECONFIGURE
GO

Silinmiş Identity Değerlerini tespit etmek

Sql server daki bir tablonuzda,sıralı artan olarak giden Identity bir kolonda aradan silinen ID lerin listesini almak isterseniz bu işlemi aşağıdaki sorgu ile yapabilirsiniz.

DECLARE @ID INT
DECLARE @MaxID INT
DECLARE @silinenIDler TABLE ( [ID] INT )

SELECT @MaxID = [ID] FROM tbOgrenci

SET @ID = 1
WHILE @ID <= @MaxID
BEGIN
    IF NOT EXISTS (SELECT 'z' FROM tbOgrenci
                   WHERE [ID] = @ID)
        INSERT INTO @silinenIDler ( [ID] )
        VALUES ( @ID )

    SET @ID = @ID + 1
END

SELECT * FROM @silinenIDler

Sorgu sonucunu virgül ile ayrılmış olarak oluşturmak

Cursor kullanarak sorgu sonucunu virgül ile ayrılmış tek satır şeklinde aşağıdaki gibi alabilirsiniz:

DECLARE ogrCUR CURSOR FOR
    SELECT top 10 [adi] FROM [tbogrenci] ORDER BY [adi]
DECLARE @ogrenciler    VARCHAR(8000)
DECLARE @ogrenciADI     VARCHAR(10)
OPEN ogrCUR
FETCH NEXT FROM ogrCUR INTO @ogrenciADI
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @ogrenciler = ISNULL(@ogrenciler + ',', '') + @ogrenciADI
    FETCH NEXT FROM ogrCUR INTO @ogrenciADI
END
CLOSE ogrCUR
DEALLOCATE ogrCUR
SELECT @ogrenciler AS &quot;İlk 10 Öğrenci&quot;
GO

(daha&helliip;)

SQL Tarih Formatları

Sql Server tarih bilgisini almak için GETDATE() fonksiyonunu kullanırız, fakat istediğimiz tarih formatına çevirmek için convert etmemiz gerekir.Bu yazıda çevrilebilen tüm formatlar için örnekler yer almaktadır.

Sql sorgularında kullanabileceğiniz tüm tarih formatları ve örnek çıktılarını aşağıdaki tabloda bulabilirsiniz.

(daha&helliip;)

Tek Sorgu ile tüm Veritabanlarının Yedeğini almak

 Sql Server Sunucusunda tanımlı yedek dizinine, tek sorgu ile tüm veritabanlarının
yedeğini almak isterseniz, bu işlemi aşağıdaki sorgu ile yapabilirsiniz.. 

   (daha&helliip;)

Management Studio Kısayol Tuşları

Sql server Managament Studio da sorgu yazarken
kullanabileceğiniz bazı kısayol tuşları;

Sorguyu çalıştırmak için:
F5  veya  Alt + X   veya  Ctrl + E
(daha&helliip;)

Microsoft SQL Server Version

Mevcut SQL Server versiyonunuzu aşağıdaki sorgu ile öğrenebilirsiniz:

Select @@version

Sorgu Sonucu (Tek Satır olarak döner):

Microsoft SQL Server 2005 – 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

Version bilgisini ayrışmış şekilde alabilmek için;

exec master..xp_msver

(daha&helliip;)

Microsoft SQL Server Database Publishing Wizard

SQL Server da ki bir veritabanını farklı bir SQL sunucusu üzerine taşımak istediğimizde;
Backup – Restore,Detach-Copy-Attach,Copy Database ile,DTS ya da SSIS,Generate Scripts yöntemlerinden birini kullanırız. Ama geliştirdiğimiz bir Web uygulaması yayınlama aşamasına geldiğin de host a db yi taşımak istediğimizde olanaksız durumlarla karşılaşabiliriz veya geliştirdiğimiz (web veya Windows Application ) uygulama, yeni veritabanı yaratması gereken bir yapıda, çoklu database destekli bir uygulama olabilir.

Bunlar gibi veya  benzeri durumlarda Database in tüm objelerinin(Stored Procedure, Functions, Triggers, Tables, Views, Constraints ve Diğer tüm objelerin) create cümleciklerinin bir SQL de toplanması hatta datanın insert cümleciklerinin de buna dahil olmasını sağlayacak bir Tool işlerimizi daha kolay hale getirecektir.

(daha&helliip;)