Volkan Atasever

Founder of inhoftec Solutions - Bilgisayar Mühendisi - Yazılım Uzmanı & Danışmanı - PCWorld Dergisi Yazarı - INETA User Group Lead - Technologist - Speaker - Technology Researcher

SQL Server Code Name Denali

clock Temmuz 18, 2011 23:18 author Volkan Atasever tarafından yayınlanmıştır

 

SQL Server'ın yeni versiyonu CTP 3 olarak download'a sunuldu. Oldukça yenilikler getiren bu yeni versiyonla birlikte SQL Server'ın daha çok güç kazanacağını düşünüyorum. İlk sıçrayışını SQL Server 2000'den 2005'e geçerek yapan SQL Sever ikinci sıçrayışını 2008'de yapmıştı. Bu seferde oldukça büyük beklentiler içindeyim. SQL Server Denali CTP 3 download için http://www.microsoft.com/sqlserver/en/us/future-editions.aspx adresini kullanabilirsiniz. Temmuz 2011'de bu sürümle ilgili white paper'da yayınlanmış durumda. Windows Azure ve SQL Azure desteğide eklenmiş bu yeni versiyonun geliştiriciler ve db adminler arasında oldukça heyecan yarattığını düşünmekteyim.

Daha ayrıntılı açıklama için aşağıdaki adresleri ziyaret edebilirsiniz;

http://www.microsoft.com/sqlserver/: SQL Server Web site

http://www.microsoft.com/sqlserver/en/us/product-info/future-editions.aspx: SQL Server Code Name “Denali”

http://technet.microsoft.com/en-us/sqlserver/: SQL Server TechCenter

http://msdn.microsoft.com/en-us/sqlserver/: SQL Server DevCenter 



SQL Server'da kolon isimlerinde özel karakter kullanmak

clock Ekim 26, 2009 03:13 author Volkan Atasever tarafından yayınlanmıştır

Çoğunlukla kendi tablolarımızı oluştururken kağıt üstünde özel karakterler içeren isimler veririz. Sql server ise bu özel karakterlere izin vermez. Tablo isimlerini eğer standar tablo ismi gibi yazarsanız bu sorunu yaşarsınız fakat bu sorunu köşeli parantez kullanarak aşabiliyoruz. Aşağıdaki örnekte normal kullanımda alınan hata mesajıda ektedir.

create table deneme(m/v varchar(3))

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '/'
.

Köşeli parantezlerimizi kullanıp aynı kodu yazdığımızda ise;

create table deneme([m/v] varchar(3))

Command(s) completed successfully.
 



Özelleştirilmiş DataBase Rolü tanımlamak ve izinleri yönetmek

clock Ekim 21, 2009 04:50 author Volkan Atasever tarafından yayınlanmıştır

Özelleştirilmiş veri tabanı rolleri sayesinde kullanıclara istediğimiz gibi özelleştirebildiğimiz rolleri atamamızı sağlar bu sayede özel bir rol tanımlayıp istediğimiz sayıda kullanıcıya bu rolleri atayabiliriz. Bunları yapmak bize hız ve veritabanımızı da daha kolay yönetmemizi sağlamaktadır. Aşağıda yeni bir rol tanımlayıp bu role kendi seçimimiz olan rolleri verip kullanıcımıza da bu rolleri atamktayız. Scriptte kullandığım sp_addrolemember prosedürü sql server'a ait bir prosedür olup bu rolleri kullanıcının rolü haline getirmemizi sağlamaktadır.

 

Bu adımda AdventureWorks database'i üstünde rol yaratmaktayız;

USEAdventureWorks

GO

CREATE ROLE [TestRol_1] AUTHORIZATION[dbo]

Go

 

Burada tanımladığımız rol'e izinlerimizi veriyoruz.

USE AdventureWorks

GO

GRANT ALTER,EXECUTE, SELECT,INSERT,UPDATE,DELETE

ON SCHEMA ::dbo

TO TestRol_1

Go

 

USEAdventureWorks

GO

GRANT BACKUP DATABASE,BACKUP LOG To [TestRol_1]

Go

 

SQL Server'ın ken içinde barındırdığı sp_addrolemember prosedürü ile rolümüze kullanıcı eklemekteyiz.

USEAdventureWorks

GO

EXEC sp_addrolemember N'TestRol_1', N'USER_ISMI'

GO

 

Bu adımda rolünü tanımladığımız kullanıcı için Windows Login hakkı vermekteyiz varsayılan veritabanı olaraksa AdventureWork veritabanını kullanmaktayız.

USEAdventureWorks

GO

CREATE LOGIN [DenemeDomain\USER_ISMI] FROM WINDOWS WITH DEFAULT_DATABASE=AdventureWorks

GO

 

Bu adımda veri tabanı için kullanıcımızı tanımlamaktayız.

USEAdventureWorks

GO

CREATE USER [USER_ISMI] FORLOGIN [DenemeDomain\USER_ISMI]

GO

 

Kaynak: Namwar Rizvi



Veritabanında tablolar arası ilişkiyi nasıl bulabilirim?

clock Ekim 21, 2009 04:11 author Volkan Atasever tarafından yayınlanmıştır

Database Yöneticileri ve SQL Server geliştiricileri genellikle bu ilişkileri bulmak için hızlı bir script'e gereksinim duyar. Normal yollardan incelemek gerçekten bazen imkansıza yakın bazen ise uzun zamanlar alan bir işkenceye dönüşmektedir. Aşağıda SQL Server NewsGroup'larda rastladaığım bir scripte yer vermek istiyorum. Oldukça kullanışlı bir script. Yeni başlayanların ve hatta piyasada deneyimli olanların dahi uzun kağıtlarda bu bağlantıları çözmeye çalıştığına şahit olduğum için faydalı olacağına eminim. AdventureWorks veritabanına ait bir örnek çıktı da aşağıda verilmiştir. Ana tabloyu ve bunun alt tabloları ile beraber foreign keylerin dökümünüde vermektedir.

 

Select

 

object_name(rkeyid) Parent_Table,

 

object_name(fkeyid) Child_Table,

 

object_name(constid) FKey_Name,

 

c1.name FKey_Col,

 

c2.name Ref_KeyCol

 

From

 

sys.sysforeignkeys s

 

Inner join sys.syscolumns c1

 

on ( s.fkeyid = c1.id And s.fkey = c1.colid )

 

Inner join syscolumns c2

 

on ( s.rkeyid = c2.id And s.rkey = c2.colid )

 

Order by Parent_Table,Child_Table

 

 

Script'in AdventureWorks örnek database'in den alınan çıktısı:

 



Connection strings for SQL Server 2008

clock Haziran 3, 2009 05:13 author Volkan Atasever tarafından yayınlanmıştır

.NET Framework Data Provider for SQL Server 

 

Standart Güvenlik

Data Source=Sunucu_Adresi;Initial Catalog=DataBase_İsmi;User Id=Kullanıcı_ismi;Password=Şifre;
Birden fazla SQL Server insatance'ı bulunun yani bir serverda birden fazla SQL Server Database Engine kurulu olan yerde Sunucu_Adresi kısmında Sunucu_Adresi\instanceİsmi şeklinde kullanın

 

Eğer SQL Server 2008 Express kullanıyorsanız Sunucuisminden sonra Sunucuismi\SQLEXPRESS şeklinde DATA Source'u belirtmeyi unutmayın.

  
Standart Güvenlik ve alternaf yazım

 Bu Connection String'de bir önceki ile aynı etkiyi yapmaktadır. Birden fazla anahtar kelime olduğu için çeşitli şekillerde gösterilebilmektedir.

Server=Sunucu_Adresi;Database=DataBase_İsmi;User ID=Kullanıcı_İsmi;Password=Şifre;Trusted_Connection=False;
 
 
Güvenli (Trusted) Bağlantı
Data Source=Sunucu_İsmi;Initial Catalog=DataBase_İsmi;Integrated Security=SSPI;
 
 
Güvenli (Trusted) Bağlantı ve alternaf yazım
 Bu Connection String'de bir önceki ile aynı etkiyi yapmaktadır. Birden fazla anahtar kelime olduğu için çeşitli şekillerde gösterilebilmektedir. 
Server=Sunucu_İsmi;Database=DataBase_İsmi;Trusted_Connection=True;
 
 
SQL Server instance’ına bağlanmak
Yukarıda belirtildiği gibi bir sunucuda birden fazla SQL Server DatabaseEngin yani insatance kurulumu varsa aşağıdaki gibi connection string’i düzenlemeniz gerekmektedir
Server=Sunucuismi\Instance_ismi;Database=DataBase_ismi;Trusted_Connection=True;
 
 
Windows CE kullanan aygıtlar için Trusted Bağlantı

 SSPI veya Trusted bağlantı kullanmanız gerekmektedir. Bunun için  aşağıdaki cümleciği kullanın
Data Source=Sunucu_Adresi;Initial Catalog=DataBase_İsmi;Integrated Security=SSPI;User ID=Domainİsmi\Kullanıcıİsmi;Password=Şifre;
Bu cümlecik sadece CE aygıtları üstünde çalışacaktır.

 
IP adresi bağlantı yolu ile
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=DataBase_İsmi;User ID=Kullanıcı_İsmi;Password=Şifre;
DBMSSOCN=TCP/IP.

SQL Server’ın varsayılan bağlantı portu 1433’dür Data source bu portu kullanır.


 
MARS (multiple active result sets) Kullanımı
Server=Sunucu_Adresi;Database=DataBase_İsmi;Trusted_Connection=True; MultipleActiveResultSets=true;


Yerel SQL Server Express bağlantısınıda database’i ekleyerek bağlantı kurmak
Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=DataBase_İsmi; Trusted_Connection=Yes;

Niçin database parametrelerine ihtiyacımız var ? Eğer bu isimde bir database mevcutsa, bu database’i SQL Server tekrar attach etmeyecek.

 
Database dosyasını attach etmek ve bunu ihtiva eden lokasyonu SQL Server Express kurulumuna göstermek

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|databasedosyaismi.mdf; Database=DataBase_İsmi;Trusted_Connection=Yes;
Niçin database parametrelerine ihtiyacımız var ? Eğer bu isimde bir database mevcutsa, bu database’i SQL Server tekrar attach etmeyecek.
 

Database mirroring yaparken kullanacağımız SQL Server bağlantı string’i
Data Source=Sunucu_Adresi;Failover Partner=MirrorServer_Adesi;Initial Catalog=DataBase_İsmi;Integrated Security=True;

 
Asenkron işlemlerde SQL Server bağlantısının asenkron isteklere cevap verebilmesi için aşağıdaki string’i kullanmalısınız.

 Server=Sunucu_Adresi;Database=DataBase_İsmi;Integrated Security=True;Asynchronous Processing=True;
 
 



Volkan Atasever Kimdir ?

E-Mail: volkan@volkanatasever.com

Founder of inhoftec Solutions
Bilgisayar Mühendisi
Yazılım Uzmanı&Danışmanı
PCWorld Dergisi Yazarı
DeveloperMania.Net Topluluk Lideri
Technology Speaker
Teknoloji Uzmanı&Danışmanı





Kitapları

Sosyal Ağlarım

    

 

Twitter

Calendar

<<  Mayıs 2012  >>
PaSaÇaPeCuCuPa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Son Yorumlar

Comment RSS

Son Yazılar

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2008-2011

Giriş

Yazılım