2009-03-11

Extended Property Nasıl Eklenir?

Bir tablo yada tablonun bir field'ına extended property nasıl eklenir? sorusuyla sık sık karşılaştığım için ekleme ihtiyacı hissettim.

--Tablonun extended property'sini ekleme
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Tablo Aciklamasi’, @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TabloAdi'
GO

--Field extended property'i ekleme
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'İlgili fieldin Aciklamasi’, @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TabloAdi', @level2type=N'COLUMN',@level2name=N'FieldAdi'
GO

2009-02-19

Veritabanındaki EXECUTE Yetkisinin Otomatik Oluşturulması

Değerli Okuyucular,

Geçenlerde iki farklı ortamda aynı veritabanının EXECUTE yetkilerinin aynı olmadığı iletilince gerçek ortamdaki EXECUTE yetkilerini bulup diğer ortama uygulamam gerekti. Bunun için EXECUTE yetkilerini otomatik oluşturan aşağıdaki SQL kodunu yazdım. Umarım sizin de işinize yarar.

select PE.state_desc + ' ' + PE.permission_name + ' ON ' + object_schema_name (Pe.major_id) + '.' + object_name(PE.major_id) + ' TO ' + CAST(PR.Name COLLATE Latin1_General_CI_AS as nvarchar(255))
from sys.database_permissions PE INNER JOIN sys.database_principals PR ON PE.grantee_principal_id=PR.principal_id

where PE.type='EX' and PE.major_id>0

2009-02-12

SSIS'te Fuzzy Group Sorunu

Değerli Okuyucular,

Üzerinde SQL Server 2008'ın Standart Edition'ın kurulu olduğu bir sunucum vardı ve üzerinde SSIS paketlerini barındırıp istediğim yerden bu paketlere erişip çalıştırmak istiyordum. Paketi düzgünce SSIS üzerine deploy ettim. Başka sunucumdan bu paketi değişik konfigürasyonlarda denedim. Paketim düzgün çalışmadı ve sürekli hata aldım. Hata package load edememe ile ilgiliydi. Paketi Visual Studio üzerinden düzgün çalıştırabiliyordum. Demek ki server tarafında bir sorun vardı. Paketin içerisinde Fuzzy Group'ta yapılıyordu. Meğer Standart Edition Fuzzy Group'u desteklemiyormuş. Fuzzy Group için Enterprise Edition veya üstü bir sürümü istiyor. Standart Edition'ı Enterprise Edition'a Upgrade ettim sorunum çözüldü.

Bu arada Visual Studio 2005 ile hazırlanan SSIS paketlerin sadece SQL Server 2005 ile; Visual Studio 2008 ile hazırlanan paketlerin sadece SQL Server 2008 ile çalışabildiğini; benzer hatalar ile karşılaşan yada karşılaşacak değerli okuyucularıma hatırlatırım.

2009-02-02

Sysadmin Rolündeki Kullanıcıları Bulma

sysadmin rolündeki kullanıcıları aşağıdaki üç farklı sorgu ile bulabilirsiniz:

  1. SQL Server 2005  ve sonrası için:

    select name
    from sys.syslogins

    where sysadmin=1
    SQL Server 2000 için:

     select name
    from syslogins
    where sysadmin=1
  2. SQL Server 2005 ve sonrası için

    SELECT p.name AS [Name]
    FROM sys.server_principals r INNER JOIN sys.server_role_members m ON r.principal_id = m.role_principal_id
    INNER JOIN sys.server_principals p ON p.principal_id = m.member_principal_id
    WHERE ( r.type ='R' ) and (r.principal_id =3) 
  3.  EXEC sys.sp_helpsrvrolemember 'sysadmin'; -- SQL Server 2005 ve sonrasında çalışır

2009-01-14

2008 Yılı Günlük İstatistikleri

2008 yılında 36.671 tekil kişi günlüğümü ziyaret etti. Bu ziyaretçilerin 34.000'i yurt içinden 2.671'i ise yurt dışından(başta ABD, Almanya, Fransa, İngilitere ve diğer ülkelerden) ulaştı. Toplam 61.872 sayfa görüntülendi. Ziyaretçilerin %78,56'sı Internet Explorer, %19,31'i Firefox üzerinden ulaştı.

Günlüğüme 2008 yılında aşağıdaki adreslerden ulaşıldı:
SıraErişim KaynağıZiyaretYüzde
1.www.google.com/31.27575,92
2.www.mehmetguzel.net/ (direk)7.670 18,62
3.www.ceturk.com/6081,48
4.www.blogger.com/3280,80
5.whos.amung.us214 0,52
6.aydinunlu.blogspot.com700,17
7.2008.blogodulleri.com 680,17
8.www.memikyanik.com/630,15
9.www.search.com/57 0,14
10.www.facebook.com/510,12
11.www.5nk.org/500,12

İlk sırayı geçen sene olduğu gibi büyük bir farkla yine google çekiyor. Google'da bazı anahtar kelimelerle yapılan aramalarda günlüğümün ilk sıralarda gelmesi google'ın günlüğümü kayırması olsa gerek:)

Günlüğüme ziyaretçi gönderen tüm erişim kaynaklarına teşekkürlerimi iletiyorum.

2008-12-27

Bilgisayar Mühendisliği Bölümü Öğrencilerine Tavsiyeler

  • Hangi alanda çalışmak istediğinize karar verin
  • Yazılım geliştirmek istediğiniz platformu seçin
  • İhtiyacınız olan programlama dillerini ve veritabanlarını iyi öğrenin
  • Okul hayatı boyunca proje geliştirin
  • Stajlarınızı iyi şirketlerde yapın
  • Yazın muhakkak yazılım geliştiren şirketlerde ücretli/ücretsiz çalışın
  • Deneyim kazanmak için part-time çalışın.

Şimdilik benim aklıma gelenler bunlar. Yazdıklarıma eklemek isteyen arkadaşların Bilgisayar Mühendisliği bölümünde okuyan arkadaşlara katkılarını bekliyorum.

2008-11-01

NewSequentialID() ve NewID()

  • NewSequentialID() ve NewID() her ikisi de GUID oluşturur.
  • NewID() rastgele GUID oluşturur.
  • NewSequentialID() sıralı GUID oluşturur.
  • NewSequentialID() tabloda sadece default olarak kullanılabilir.
  • NewSequentialID() tahmin edilmesi daha kolaydır(sıralı gittiği için).
  • NewID() rastgele GUID oluşturduğu için güvenlik açısından daha tercih edilir.
  • Özellikle NewSequentialID() alanı clustered index içerisinde kullanılıyorsa NewID()'ye göre daha iyi performans gösterir. Çünkü NewID() rastgele GUID oluşturduğu için her seferinde yeni oluşturulan kayıt için clustered index yerleri değişecektir. Bu da INSERT zamanını uzatır. NewSequentialID() sıralı olduğu için index yeri ardışıl olarak devam edecektir.

2008-10-23

Transaction Blok İçerisindeki Lokal Değişkenlerin Durumu

Bana göre uzun sayılabilecek bir aradan sonra tekrardan sizlerleyiz efendim.

Bu sefer lokal değişkenlerin transaction yapısı içerisindeki durumunu hep birlikte inceleyeceğiz. Öncelikle hatırlayamanlar için transaction yapısını hatırlatalım:

BEGIN TRAN
--Ara işlemleriniz
COMMIT TRAN
--yada
ROLLBACK TRAN

Bu hatırlatmadan sonra asıl konumuz olan lokal değişkenlerin transaction yapısındaki durumuna dönelim. Bunun için birbirine çok benzer iki örnek üzerinde duralım:

Örnek-1:
DECLARE @OnlineZiyaretci INT
SET @OnlineZiyaretci = 10

PRINT @OnlineZiyaretci --OnlineZiyaretci değeri 10

BEGIN TRAN
SET @OnlineZiyaretci = @OnlineZiyaretci + 1
PRINT @OnlineZiyaretci --OnlineZiyaretci değeri 11
ROLLBACK TRAN

PRINT @OnlineZiyaretci -- Burdaki değeri tahmin edin?
GO

Örnek-2:
DECLARE @OnlineZiyaretci INT
SET @OnlineZiyaretci = 10

PRINT @OnlineZiyaretci --OnlineZiyaretci değeri 10

BEGIN TRAN
SET @OnlineZiyaretci = @OnlineZiyaretci + 1
PRINT @OnlineZiyaretci --OnlineZiyaretci değeri 11
COMMIT TRAN

PRINT @OnlineZiyaretci -- Burdaki değeri tahmin edin?
GO

Normal şartlarda bir kayıt yada kayıt kümesi için rollback olduğunda o kayıtlar eski haline döner; commit olduğunda ise transaction blok içerisinde aldığı son değerleri alır .
Eminim bir çoğunuz aynı mantıkla @OnlineZiyaretci değişkeninin örnek-1 için 10; örnek-2 için ise 11 alacağını tahmin etmişsinizdir. Kodu denerseniz tahminizde yanıldığınızı; her iki durumda da @OnlineZiyaretci değerinin 11 olduğunu göreceksiniz. Bunun nedeni lokal değişkenlerin Transaction yapısından etkilenmemeleri!

Bir sonraki yazıda görüşünceye dek bol SQL'li günler diliyorum.

2008-10-21

Yorum Farkı!

Yazının başlığına bakıp Mehmet Barlas ile Emre Kongar'ın sunduğu Yorum Farkı programına değineceğimi zanneden arkadaşları üzmek istemesemde bugün farklı bir Yorum Farkına değineceğim. Bugün daha önceleri almayı düşündüğüm fakat bir firma tarafından alınmış olan yorum.com domain name i satın almış olsaydım altında hangi sub domainleri barındıracağımı düşündüm. İşte kısa bir düşünmeden sonra aklıma gelen sub domainler:

1- ali.yorum.com (Alış, alıcı yorumları)
2- aci.yorum.com (Acıya, bibere dair yorumlar)
3- oku.yorum.com (Okuyucu, kitap yorumları)
4- ucu.yorum.com (Uçuş,uçak yorumları)
5- soru.yorum.com (Soru Merkezi)
6- baki.yorum.com (Bakıcı yorumları)
7- bulu.yorum.com (Arama Merkezi)
8- gulu.yorum.com (Gülmeye Dair)
9- suru.yorum.com (Sürüş, sürücü yorumları)
10-goru.yorum.com (Görmeye dair yorumlar)
11-gezi.yorum.com (Gezi yorumları)
12-kosu.yorum.com (Koşu yorumları)
13-gozlu.yorum.com (Göze dair, gözlüğe dair yorumlar)
14-oynu.yorum.com (Oyun yorumları)
15-sati.yorum.com (Satış, satıcı yorumları)
16-dusunu.yorum.com (Düşünceye dair yorumlar)
17-unutu.yorum.com (Unutkanlık üzerine yorumlar)
18-usutu.yorum.com (Soğuk algınlık ile ilgili yorumlar)
19-yuzu.yorum.com (Yüzmeye dair yorumlar)
20-bili.yorum.com (Bilgiye dair yorumlar)
21-calisi.yorum.com (Çalışma hayatına dair yorumlar)
22-odu.yorum.com (Ödemelere dair yorumlar)

Bakalım sizin aklınıza hangi varyasyonlar gelecek?

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.