Bir Kullanıcının Yetkilerini Başka Kullanıcıya Kopyalamak

Query Analyzer No Comments »

SQL Server’de bir kullanıcıya verdiğimiz yetkileri başka bir kullanıcıya nasıl kopyalayabiliriz. T-SQL’de bunu doğrudan yapabileceğimiz bir komut yapısı bulunmamaktadır. Her defasında her kullanıcı için GRANT ve DENY ifadelerini kullanarak manual olarak aynı yetkilerin verilmesi gerekir. Veya Management Studio veya Enterprise Manager üzerindeki Generate Script bölümü kullanılarak veritabanına ait script kodları oluşturulur. Orada ilgili kopyalama ve değiştirme işlemi yapılır. Bu yazıda nasıl bir script yazılarak bu işlemin daha kolay yapılacağını örneklendireceğiz. Read the rest of this entry »

SQL’den Excel’e, Excel’den SQL’e Aktarım

SQL Server, Oracle 1 Comment »

SQL Server sahip olduğu Export/Import aracıyla diğer veritabanlarına göre bir adım önde diyebiliriz. SQL Server üzerinde çalışırken sorgu sonucunu Excel formatında dışarı çıkarmak her zaman ihtiyaç duyulan bir durum olmuştur. Excel’de SQL Server’e import veya ters yönde export işlemi için en çok kullanılan yöntemler SQL 2000′de Data Transformation Services (DTS), SQL 2005′te SQL Server Integration Services (SSIS) ve her iki sürümde Bulk Copy (BCP) araçlardır. Bu araçların özelliği grafiksel ortam sunmaları ve genellikle Job’lar aracılığıyla çalıştırılıyor olmasıdır. DTS, SSIS ile nasıl yapılacağı kolay bir işlemdir. Bu yazıda BCP ve farklı T-SQL alternatiflerini inceleyeceğiz. Read the rest of this entry »

XML Formatını Kullanarak Metni Bölmek (String Split)

Query Analyzer No Comments »

SQL Server üzerinde programlama yaparken metinleri ayrıştıran split fonksiyonunun T-SQL’de olmayışının eksikliğini hep hissetmişizdir. Bir metni bölmenin birçok yöntemi olsa da hepsinin mantığı döngü kurup metin içerisinde virgül gibi bir ayıraçın konumu bularak her virgül arasındaki değeri listelemektir. SQLTeam’da denk geldiğim aşağıdaki yöntemin daha hızlı olduğu ve pratik olduğunu düşünüyorum.

IF OBJECT_ID('dbo.Split') IS NOT NULL
    DROP FUNCTION dbo.Split

GO
CREATE FUNCTION dbo.Split(@data NVARCHAR(MAX), @delimiter NVARCHAR(5))
RETURNS @t TABLE (data NVARCHAR(max))
AS
BEGIN

    DECLARE @textXML XML;
    SELECT    @textXML = CAST('' + REPLACE(@data, @delimiter, '') + '' AS XML);

    INSERT INTO @t(data)
    SELECT  T.split.value('.', 'nvarchar(max)') AS data
    FROM    @textXML.nodes('/D') T(split)

    RETURN
END
GO

dbo şemasına altında oluşturulan bu fonksiyonu kullanalım.

DECLARE @text NVARCHAR(max)
SELECT @text = 'C#, VB.NET, SQL Server, AJAX'

SELECT * FROM dbo.Split(@text, ',')

C#
VB.NET
SQL Server
AJAX

SQL Server’de Neden “Sayılar” Tablosuna İhtiyaç Duyarız

Query Analyzer No Comments »

SQL Server belli sayı aralığında işlem yapmak için genellikle while döngüsü kullanılır. Oysa elimizin altında ardışık sayıların bulunduğu bir tablo bulunursa her defasında while ile sözkonusu aralıktaki sayıları bulmaktansa basit Join işlemleriyle başı ve sonu verilmiş tarihsel, sayısal ve metinsel bir aralık oluşturulabilir. Bu yazıda böyle bir tablonun nasıl oluşturulacağı ve ne tür durumlarda kullanabileceğimizi örneklendireceğiz. Bu çalışmanın T-SQL ile ilgili iyi bir egzersiz olacağını düşünüyorum. Read the rest of this entry »

SQL Server’de Ne Zaman Defrag Yapmalıyız

SQL Server, Oracle 2 Comments »

Fragmentation (parçalama) kavramı bilgisayar biliminde bellek, disk gibi kaynaklar üzerindeki birimlerin düzensiz parçalar (fragment) haline dönüşmesi ve bunun sonucunda düzenli boş alanın azalmasıdır. Dağılmış bu parçaları birleştirme işlemine defragmentation (birleştirme) denilir. SQL Server’da uzun süre veritabanı üzerinde yapılan silme, güncelleme, ekleme işlemleri sonucunda veritabanı dosyasında data veya index kayıtları arasında boş alanlar oluşur. Boş alanlar birbirleriyle ilişkili dolu kayıtların arasında olduğu için herhangi bir kayda erişme durumunda dağılmış kayıtlar arasında çok dolaşılacağından ciddi zaman kaybedilmektedir. Veritabanı dosyasındaki boş ve dolu alanları bir tarafa toplayıp dosyayı daha ekonomik, ergonomik kullanmak için belli dönemlerde defragmantasyon yapmak gerekir. Read the rest of this entry »

SQL Server Programlama ve Yönetim İpuçları - II

SQL Server, Oracle 3 Comments »

Daha önce yazdığımız ipuçlarına ek olarak bu yazıda aşağıdaki ipuçlarını vereceğiz.

  • SQL Server servisi her çalıştığında bazı komutları nasıl çalıştırabiliriz.

  • SQL Server Enterprise Management konsolde açılmıyor.
  • “IS NULL” ve “= NULL” arasındaki fark nedir.
  • COALESCE(), ISNULL() ve NULLIF() fonksiyonlar arasındaki fark nedir.
  • NEWSEQUENTIALID() ve NEWID() arasındaki fark nedir.
  • TRUNCATE ile DELETE arasındaki fark nedir.
  • T-SQL aracılığıyla uzaktan erişim nasıl açılır/kapatılır.
  • Veritabanı dosyalarının büyüklüğünü her gün mail ile nasıl alabilirim.
  • İki saat arasındaki farkı saat olarak yazdırmak

Read the rest of this entry »

Yeni Nesil Veri Programlama Modeli (ADO.NET 3.5)

C#, VB.NET, ASP.NET 8 Comments »

Microsoft firması .NET Framework 3.0 ile birlikte ADO.NET’in yeni bir versiyonunu yayınlamadı. .NET Framework 3.5 ile birlikte yeni eklentiler kazandırılmış ADO.NET 3.5 sürümü yayınlandı.
Microsoft, ADO.NET 3.5 sürümleriyle birlikte veritabanı uygulama mimarisinde büyük kolaylık sağlayan Object Relational Mapping (O/R Mapping) yöntemini destekleyecek önemli adımlar attı. Bu amaçla ADO.NET Entity Framework aracı geliştirildi. Konunun ayrıntılarına geçmeden önce bu kavramları tanımlayalım ve neden yeni bir yaklaşıma ihtiyaç duyulduğunu açıklayalım. Read the rest of this entry »

SQL’de Özet Tarih Tablosu / Date dimension table

Query Analyzer 4 Comments »

Bu blogda doğrudan yeni teknolojileri anlatmak yerine eski ve yeni teknolojileri gözetmeksizin günlük hayatta, projelerde ihtiyaç duyulan yöntemleri, ipuçlarını, konuları, örnekleri, yazılım geliştirme sürecinde dikkat edilmesi gereken konuları vermeye çalışıyoruz. Yazılım mühendisliğiyle ve C# veya VB.NET programlama dilleriyle ilgili detaylı konuları yakın zamanda çıkacak olan kitaplarımda vermeye çalıştım. Bu küçük yazıda da özellikle veri ambarı raporlama sistemlerinde işlerimizi kolaylaştıracak Tarih tablosunun içeriğini vereceğiz. “Date dimension table” olarak isimlendirilen bu tablo tüm data warehouse sistemlerinde ortak olup sistemin kullanım amacına uygun olarak farklı detaylar içerir. Belli tarih aralığının detaylarını içeren bu tablo çalışma anında tarihsel hesaplamaların neden olacağı performans ve zaman kaybını engeller. Bu tablo aynı zamanda OLTP uygulamalarında lookup olarak ta kullanılabilir.
Read the rest of this entry »

SQL Server’da FTP ve e-Mail İşlemi

SQL Server, Oracle 12 Comments »

SQL Server üzerinde otomatik sorgular hazırlayıp sorgu sonuçlarını raporla ilgili kişilere mail olarak atmak veya ftp aracılığıyla belirlenmiş bir alana aktarmak özellikle kurumsal uygulamalarda ihtiyaç duyulan bir durumdur. Bu yazıda SQL Server üzerinde mail ve ftp işlemi nasıl yapılacağını örneklendireceğiz. Read the rest of this entry »

“8. Öfkeli Adam” Olabilmek

Günlük Yaşam No Comments »

12 Angry Men / 12 Öfkeli Adam

12 Angry Men, Sidney Lumet tarafından yönetilmiş ve görünürde Henry Fonda’nın başrolde oynadığı 1957 yapımı bir kült filmdir. “18 yaşındaki bir Latin genç, babasının ölümünden sorumlu tutularak mahkemeye çıkartılır. Duruşmayı takip eden 12 jüri üyesi tanıkların da ifadelerine başvurduktan sonra, gencin suçlu olduğuna kanaat getirirler. Karar açıklanacağı zaman 11 üye, onun suçlu olduğunu ve idam edilmesini savunurken Bay Davis, karara karşı çıkar ve herkesi kararlarını yeniden değerlendirmeye davet eder. Çünkü jüri, bu kararı kesin delillere göre değil, kişisel düşüncelerine ve bazı dış etkenlere göre vermiştir.” Read the rest of this entry »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Giriş