sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Şubat 2012 Perşembe

Database büyüklüğünü veren sorgu

Bir proje üzerinde çalışırken yazmam gereken bir sorguyu sizinle paylaşmak istedim. 
İşinize yarayabilir.


SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
((size*8)/1024)/1024 SizeGB,
((size*8)/1024) SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'Database_Adı'
GO

Kolay Gelsin


10 Ağustos 2010 Salı

MsSql’de Bir Tablodan Başka Bir Tabloya Veri Kopyalamak

Merhaba bazen projelerinizde bir tablo oluşturur ve  bu tabloya bir veya birden fazla tablodan verileri eklemek isteyebilirsiniz.
Bu manuel olarak yapılmaya kalkışıldığında eziyet çekmeniz içten değildir. Bu durumda hemen Sql de bir query aracılığıyla işlemimizi gerçekleştirebiliriz.
INSERT INTO TabloAdı(ad, soyad)
SELECT Ad, Soyad
FROM TabloAdı
WHERE Id = 4
Bu şekilde basit bir sorgu ile işlemimiz gerçekleşir. Eğer Farklı database tablolarında aynı işlemi yaparsak Linked Server kullanarak tabloların başına sadece varsa ip ve db adını yazarak işleminizi gerçekleştirebilirsiniz.

23 Aralık 2009 Çarşamba

Sql Server da Bulk Insert nedir?

Kısacası metin dosyalarının SQL Server'a aktarmanın en kolay yoludur. Bunu yapmanız için bilmeniz gereken ufak tefek ayrıntıdan başka bir şey yok.

Sıralamak gerekirse,

-Metin dosyasının uzantısını
-Kolonlar birbirinden hangi karakterle ayrılıyor
-Satır sonları nasıl belirlenmiş bilmemiz yeterli.

Bulk Insert komutu ise

BULK INSERT TableName FROM  'Path(DosyaYolu)' WITH (FIELDTEMINATOR = ',')


FIELDTERMINATOR - ile metin dosyamızda bulunan kayıtların kolonlara ayrılmak istenildiğinde hangi karakterle ayırma işlemi yapılacak olduğunu belirtliğimiz yerdir.

Ufak bir örnek yaparak deneme yapacak olursak bunun için hemen bir tablo oluşturalım.

CREATE TABLE User
(
id int,
Name nvarchar(50),
LastName  nvarchar(50),
Age int,
City nvarchar(50),
)

Sql tablomuzuda oluşturduk ya metin dosyamız??? Onuda basit bir şekilde yazıyorum hemen.
Mesela buda C klasörünün altında Users.txt metin dosyamız olsun.

1$Ali$Alioğlu$18$Istanbul
2$Veli$Velioğlu$19$Bursa
3$Ahmet$Ahmetoğlu$20$malatya
4$Mehmet$Mehmetoğlu$21$Edirne


BULK INSERT User FROM  'C:\Users.txt' WITH (FIELDTEMINATOR = '$')


--Dolar ($) kullandım. Çünkü text içerisinde kullanılabilecek karakterden uzak durdum. İşimi garantiye aldım.


Bu şekilde hdd mizde bulunan bir txt dosyasını SQL de oluşturduğumuz bir tabloya taşımız bulunuyoruz.
Ama burada önemli nokta taşıma esnasında türkçe karakter sorunu yaşıyor olacağımızdır. Bunun çözümüde çok basit Bulk Insert komutumuza CODEPAGE = '1254' eklememiz yeterli olucak.

Şu şekilde kullanıcaz yani
BULK INSERT User FROM  'C:\Users.txt' WITH (FIELDTEMINATOR = '$' , CODEPAGE = '1254' )


Bu işlemleri sırasıyla yaptık ama birden karşımıza

You do not have permission to use the bulk load statement.


Bu durum Bulk Insert yetkinizin olmasından kaynaklanıyor. sysadmin veya bulkadmin rollerinize sahip olursanız bu hatayıda basitçe geçiceksiniz.






22 Aralık 2009 Salı

Sql Server da Case - When yapısı

Sql cümlelerimizde belirli durumlar (koşullar) karşısında farklı işlemler yapmak istiyorsak Case - When yapısını kullanabiliriz.
Yapı Oldukça basit

Kullanım:

CASE
WHEN Koşul_1 THEN Koşul_1 gerçekleştiğinde yapılacaklar
WHEN Koşul_2 THEN Koşul_2  gerçekleştiğinde yapılacaklar
WHEN Koşul_3 THEN Koşul_3  gerçekleştiğinde yapılacaklar
ELSE (bu belirtilen 3 durumun gerçekleşmemesi durumunda yapılacaklar)
END

Örnek:


SELECT Name, LastName
CASE Gender
WHEN 'F' THEN 'Female'
WHEN 'M' THEN 'Male'
END AS Gender FROM Users