MsSql veritabanında insert sonrasında kaydedilen ID nasıl alınır?

Hazırladığımız uygulamalarda, MsSql ‘de insert edilen verinin kayıt ID’si bazen hemen gerekmektedir. Bu ID aynı sorgu (insert query) içinde veya insert sorgusunun ardından gelecek ikinci bir sorgu ile de alınabilir.

C# üzerinden örneklendirelim:

//Baglantimizi aciyoruz.

SqlConnection cn = new SqlConnection("ConnectionString");

cn.Open();

//sqlcommandımız oluşuyor ancak query sonuna SELECT INSERT_ID = @@Identity; 
//ekleniyor.. Bu aynı sorguda alma yöntemidir. Eğer ikinci bir sorgu kullanacaksanız,
//bu deyimi aynen ikinci sorgu olarak göndermeniz gerekiyor.

SqlCommand com1 = new SqlCommand("insert into table1 (field1,field2) values 
(value1,value2);SELECT INSERT_ID = @@Identity;",cn);

string insert_id=com1.ExecuteScalar().ToString();

//insert_id 'yi istediğiniz gibi kullanabilirsiniz. Dilerseniz Int32 'ye çevirip 
//dilerseniz direkt string olarak ikinci bir sorgunuzda kullanilabilir.

//Baglantiyi kapatiyoruz
cn.Close();

Kolay gelsin..

Ms-sql de database owner’i değiştirmek

Ms-sql de Backup edilen bir database farklı bir bilgisayarda restore edildiğinde database owner kullanıcısı restore edilen bilgisayarda olmadığı için bazı hatalar ile karşılaşılır.

Bu durumu gidermek için db owner ataması yapılması gerekir. Security sekmesinden atama yapacagınız kullanıcının Özellikler ekranına girerek User Mappings ‘den ilgili database seçilerek alt kısımdan db_owner rolü atanması gerekir.

Fakat Sa kullanıcısı için bu şekilde atama yapılamaz. Bu atamayı bir Query Window ve özellikle ilgili database seçilerek sp_changedbowner ‘login_name’ şeklinde yapabilirsiniz. Kolay gelsin…