Aşağıdaki örnekteki gibi bir tablonun sütunlarını tüm özellikleriyle listeleyebilirsiniz
use veritabani_adi go SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tablo_adi'
Sql server yüklemesinde bilgisayarı yeniden başlatmanızı isteyebilir ve bu hata bilgisayarı yeniden başlatmanıza rağmen düzelmeyebiliyor, çözüm için aşağıdaki adımları izleyin
This almost worked for me (using Vista) but everytime I rebooted some temporary files kept showing up in my "PendingFileRenameOperations". What did work for me though was running Regedit, finding the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" then deleting the value of "PendingFileRenameOperations". I then exited regedit, ran my sql server 2k8 express edition setup (without rebooting) and it installed without an issue. Hope that helps.
alıntı: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/988ab9e3-26ce-48da-ad61-c458f5c9c539/setup-of-sql-server-2008-restart-required-but-i-have-restarted?forum=sqlsetupandupgrade
Truncate komutu bir tablonun içeriğini primary keyler ile birlikte sıfırlamak için kullanılır.
Bunu yaparak primary key değerini sıfırlamış olursunuz.
Primary key sütununda bulunan değerler her satıra eşsiz bir numara vermek için de kullanılabilir, bu sayede veriye hem daha hızlı erişmiş oluruz hem de update, delete gibi işlemlerde o satıra direk olarak erişme imkanımız olur
Bu yüzden primary key sıfırlarken dikkatli olmanız gerekir, eğer başka bir tabloda, sıfırladığınız tabloya join olarak referans vermiş iseniz, primary key iniz tekrar edeceğinden program içerisinde karışıklık yaratabilir.
Bu yüzden truncate kullanımında mümkünse o tabloyla ilişkili bütünt tablolara da aynı işlemi yapmak en mantıklısıdır.
DELETE FROM tabloismi
şeklindeki sorgularda genellikle Id bilgisini tuttuğumuz primary key değerleri sıfırlanmaz, bunun için aşağıdaki gibi tabloyu truncate etmemiz gerekir.
Örnek olarak PersonelListesi isimli tabloda bu işlemi yapalım
TRUNCATE TABLE PersonelListesi
Veritabanında bulunan kullanıcı listemize ait kullanıcıların kayıt tekrarını önleyerek aynı kullanıcının birden fazla kez kaydolmasını önleyebilir, ayrıca kullanıcı adının eşsiz olmasını sağlayabiliriz.
Bu işlemin tsql ile nasıl yapılacağını aşağıda örnekledim
Kullanıcı kaydını kullanıcı adı değerine göre kontrol ettik, örnekten yola çıkarak başka değerlerle de kontrol yapabilirsiniz.
İlk önce kullanacağımız değişkenleri tanımlıyoruz
Daha sonra belirtilen kullanıcı adına sahip başka bir kullanıcının kullaniciListesi tablosunda var olup olmadığını sorguluyoruz, eğer yoksa yeni bir kayıt olarak insert yapıyoruz ve yeni kaydın primary key değerini “IslemSonucu” isimli değişkene aktarıyoruz
Eğer daha önce aynı isimde bir kullanıcı tabloya kayıt yapılmışsa IslemSonucu değişkenine sıfır değeri veriyoruz
En son da IslemSonucu değişkenini select yapıyoruz, böylece tek seferde hem kayıt kontrolü, eğer uygunsa da kayıt yapmış oluyoruz
Veritabanı tarafında böyle bir script hazırladıktan sonra program tarafında şöyle bir mantık kurmalıyız
Eğer bu scriptten dönen sonuç sıfır ise bu kullanıcı adına daha önce kayıt açılmış, yani buna göre uyarı vermeliyim vs..
Eğer scriptten dönen sonuç sıfırdan büyükse yeni kullanıcıyı oluşturdum, id si de budur. artık bu id ile o kullanıcının bilgilerini mi gösteririm, oturum mu açtırırım veya başka işlemler mi yaparım, bu tamamen bana kalmıştır.
Bu kontrolü veritabanında yapmanın avantajı bir kaç kez program-veritabanı arasında gidiş-geliş yapmadan tek seferde sorunu çözebilmek.
Bu hem uygulamanın daha hızlı çalışmasını sağlar, hem de kod karmaşasını önler.
Veritabanı ile çalışan uygulamalar yazarken ne programa fazla yüklenin ne de sql e, ikisini dengeli kullanın.
Bu şekilde iki tarafta da kod temizliği, veri trafiğinin az olması gibi avantajlarınız olur.
declare @KullaniciAdi as varchar(max) = 'deneme' declare @Sifre as varchar(max) = '1234' declare @MailAdresi as varchar(max) = 'deneme@deneme.com' declare @IslemSonucu as int if(not exists( select top 1 KullaniciId from KullaniciListesi where KullaniciAdi = @KullaniciAdi )) begin insert into KullaniciListesi (KullaniciAdi, MailAdresi, Sifre) values (@KullaniciAdi, @MailAdresi, @Sifre) set @IslemSonucu = @@IDENTITY end else begin set @IslemSonucu = 0 end select @IslemSonucu as IslemSonucu