Ocak 20, 2012 at 00:49 · Kategori: SQL
Sql Server’da herhangi bir veritabanındaki bir tabloyu verileriyle ya da verileri olmadan başka bir veritabanında da oluşturmak istediğimde genellikle Sql Server’ın Generate Scripts özelliğinden yararlanıyordum. Ancak bu işlemi direkt olarak bir sql ifadesi yazarak yapmak da mümkün.
Select * Into YeniTestDB.dbo.YeniFilmler
From Filmler
Where 1 = 2
Bu ifade ile Filmler isimli tablo YeniTestDB isimli veritabanında da oluşturulmuş oldu. Ancak yazmış olduğunuz where ifadesi sayesinde mevcut tablodaki verilerin aktarılmasını engellendi.
Eğer buradaki where ifadesi kaldırılırsa bu kez verileriyle birlikte Filmler isimli tablo, YeniTestDB isimli veritabanında oluşturulmuş olacaktı.
Ocak 17, 2012 at 06:20 · Kategori: Kısa Notlar
Çok sık kopyalanıp yapıştırılan birşey olduğu için mi, her projede genelde bir sefer yazıldığı için mi, yoksa farklı bir özel nedeni var mı bilemiyorum ancak ConnectionString’in yazılışını genelde sıkça unutuyorum. Bu sebeple şimdiye kadar ConnectionStrings.com isimli siteden sıkça yararlanıyordum. Ancak geçenlerde bana daha basit gelen bir yöntem öğrendim.
Windows kullanıyorsanız eğer, adı önemli olmamakla birlikte uzantısı udl (universal data link) olan bir dosya oluşturun ve oluşturulan dosyayı çift tıkla açın.
Karşınıza aşağıdaki gibi, veritabanı ayarlarını yapabileceğiniz bir panel açılacak.

Buradan veritabanı bağlantınız için gerekli tüm ayarları yaptıktan sonra dosyayı bir notepad aracılığıyla açın. ConnectionString karşınızda.
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=TRABZON
Temmuz 28, 2011 at 23:06 · Kategori: SQL
Geçen gün projelerin birinde bu tip bir sorguya ihtiyacım olmuştu. Sql’de çok tecrübeli olmadığımdan olaya temkinli yaklaşıp aşağıdaki sorguyu yazmıştım:
SELECT SUM(val) FROM (
SELECT COUNT(*) AS val FROM Tablo1
UNION
SELECT COUNT(*) AS val FROM Tablo2
)
Sorguyu çalıştırıp yanlış değer döndüğünü farkedince olayın UNION kullanmamdan kaynakladığını öğrendim. Temkinli olmak yetmemiş, bilgiye ihtiyacım varmış. Zira UNION farklı değerlerle ilgilenip , tablolardaki aynı değerleri yeni oluşan tabloya dahil etmiyor. Kısaca Sqldeki DISTINCT gibi çalışıyor diyebiliriz. Sorguyu aşağıdaki şekliyle çalıştırınca istediğim sonucu yani iki tablodaki row sayılarının toplamına ulaşmış oldum. Elbette projedeki select sorguları böyle değildi, ancak olayı anlaşılır kılmak adına böylesi daha uygun olur diye düşündüm.
SELECT SUM(val) FROM (
SELECT COUNT(*) AS val FROM Tablo1
UNION ALL
SELECT COUNT(*) AS val FROM Tablo2
)
Şüphesiz bu sonucu sqlde birden fazla yöntemle elde edebiliriz. Sizin de bir çözümünüz varsa paylaşabilirsiniz.