1
2
3
4
| SELECT kolon1, kolon2, kolon3FROM tabloadiGROUP BY kolon1, kolon2, kolon3HAVING COUNT(*) > 1 |
SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
21 Şubat 2017 Salı
Aynı Kayıtları Listelemek
Aşağıdaki sorguyla kolon1, kolon2, kolon3 kolonları aynı olan satırları bulabilirsiniz
25 Şubat 2016 Perşembe
Database is in use error while restore database Hatası
Database'i restore yaparken "in use" hatası alıyorsanız. önce offline yapıp restore ediniz ve daha sonra online yapınız..
use master
alter database DB_NAME set offline with rollback immediate;
use master
alter database DB_NAME set online with rollback immediate;
24 Şubat 2016 Çarşamba
CMD ile Sql Script çalıştırma
Sqlden aldığınız script çok büyük ise bunu sql management ile çalıştırmak neredeyse imkansız ama çözümü var tabiki;
Bu script'i CMD ile aşağıdaki kodu yazarak çalıştırabilirsiniz....
sqlcmd -S SERVER\SQL2008 -i c:\script.sql -o c:\log.txt
23 Şubat 2016 Salı
The SQL Server service failed to start. Hatası
Microsoft SQL Server 2005 Kurulumu
------------------------------
The SQL Server service failed to start. For more information, see the SQL Server Books Online topics, "How to: View SQL Server 2005 Setup Log Files" and "Starting SQL Server Manually."
kurulumu yaparken bu hata ile karşılaşıyorsanız
çözüm için çalışan bi sql serverdan program files altında mssql içinden BINN klasörü altında "sqlos.dll" ve "sqlservr.exe" dosyasını kopyalayıp kendi mssql serverına atarsan. ve retry dersen kuruluma devam edicektir. sorunsuz bir şekilde kurulumu tamamlıyacaktır.
------------------------------
The SQL Server service failed to start. For more information, see the SQL Server Books Online topics, "How to: View SQL Server 2005 Setup Log Files" and "Starting SQL Server Manually."
kurulumu yaparken bu hata ile karşılaşıyorsanız
çözüm için çalışan bi sql serverdan program files altında mssql içinden BINN klasörü altında "sqlos.dll" ve "sqlservr.exe" dosyasını kopyalayıp kendi mssql serverına atarsan. ve retry dersen kuruluma devam edicektir. sorunsuz bir şekilde kurulumu tamamlıyacaktır.
4 Aralık 2015 Cuma
IDENTITY_INSERT is set to OFF
Cannot insert explicit value for identity column in table 'Stok_tmp' when IDENTITY_INSERT is set to OFF.
Sqlde yukarıdaki hata ile karşılaşırsanız çözümü ya IDENTITY olarak verdiğiniz alanı sql cümlenizde insert etmemelisiniz veya ağaşıdaki kod ile IDENTITY alana ekleme yapmanızı sağlayabilirsiniz.
SET IDENTITY_INSERT tablo_adı OFF
9 Eylül 2015 Çarşamba
Sql Üzerindeki Kullanıcı Connection Sayılarını göstermek
MsSql üzerinde açık olan kullanıcı ve Connection Sayılarını göstermek için aşağıdaki kodu
kullanabilirsiniz.
SELECT DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0GROUP BY dbid, loginame
19 Ağustos 2015 Çarşamba
SQL Server database restore error: specified cast is not valid. (SqlManagerUI)
Error: Specified cast is not valid. (SqlManagerUI)
hatası alıyorsanız TSQL ile backuptan dönebilirsiniz...
RESTORE DB_NAME
FROM DISK = N'C:\BACKUP.bak'
GO
RESTORE DATABASE DB_NAME
FROM DISK = 'C:\BACKUP.bak'WITH
MOVE 'DB_NAME' TO 'C:\DATA\DB_NAME.mdf', MOVE 'DB_NAME_log' TO 'C:\DATA\DB_NAME.ldf', REPLACE
GO
10 Temmuz 2015 Cuma
The CHECK_POLICY and CHECK_EXPIRATION options cannot be turned OFF when MUST_CHANGE is ON Hatası
MS Sql üzerinde kullanıcının şifresini değiştirmeye çalışıyorsunuz.
ve birde bakıyorsunuz aşağıdaki hatayı alıyorsunuz.
ve birde bakıyorsunuz aşağıdaki hatayı alıyorsunuz.
Msg 15128, Level 16, State 1, Line 1The CHECK_POLICY and CHECK_EXPIRATION options cannot be turned OFF when MUST_CHANGE is ON.çözüm için aslında çokta uğraşmanıza gerek yok. windows Authentication ile oturum açın ve aşağıdaki sorguyu kendinize göre düzeneleyerek çalıştırın ve kullanıcı adınız ve yeni şifreniz ile login olarabilirsiniz..
USE MasterGOALTER LOGIN degisecek_kullanici WITH PASSWORD = ‘YeniSifre’GOALTER LOGIN degisecek_kullanici WITH CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF;
27 Mart 2015 Cuma
Select ile Update Yapmak
Başka Tablodan Select ile update yapmak
UPDATE
Table
SET
Table.col1 = other_table.col1,
Table.col2 = other_table.col2
FROM
Table
INNER JOIN
other_table
ON
Table.id = other_table.id
5 Şubat 2015 Perşembe
SQL Server'da Bütün Database'lerin Yedeğini Almak
Sql'de Tum Database'lerin yedeğini almak istiyorsak çözüm basit aşağıdaki kodu çalıştımanız yeterli..
DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file nameSET @path = 'C:\Backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)DECLARE db_cursor CURSOR FOR
SELECT name FROM MASTER.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor DEALLOCATE db_cursor
SELECT name FROM MASTER.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor DEALLOCATE db_cursor
4 Ocak 2015 Pazar
SQL Server Edit Top 200 Rows Ayarını Değiştirme
SQL Server da bir tabloyu editlemek istersek aşağıdaki ekran görüntüsünde olduğu gibi default olarak Edit Top 200 Rows gelir.
Bu ayarı arttırmak yada azaltmak için şu adımlar izlenmelidir
- Tools
- Options
- SQL Server Object Explorer
- Value for Edit Top
Rows command değerini değiştirmek
Bu ayarı 500 olarak değiştirelim. Değişim sonundaki görüntü aşağıdaki gibi olacaktır.
TSQL de Eklenen Son Kaydın Id sini Alma
TSQL de insert işlemi sonrasında kayıt edilen satırın ID bilgisini almak için aşağıdaki TSQL scripti kullanılmalıdır.
SELECT SCOPE_IDENTITY();
11 Aralık 2014 Perşembe
Sql İle Sıralama Yapmak (2000, 2005, 2008 ,2012 ve Tüm versiyonlar)
sp_executesql N' select * from (select top 10 * from (select top 15 * from TblTablo order by Id ASC) a order by Kolon1 DESC) b order by Kolon1 ASC';
Top10 - Ekranda geri dönecek kayıt sayısını gösterir. Top15 ise başlangıç indisini. Bu Sorguda 15. kayıttan başlayarak 10 kayıt getirilmesini sağlamaktadır..
Aynı Kodun C# ile fonksiyon olarak sıralanması;
private String PrepareQuery(String SiralanacakKolon, Boolean Azalan, Int32 SayfaIndex, Int32 SayfadakiKayit, Int32 KayitSayisi)
{
Int32 DonecekKayitSay = SayfadakiKayit;
Int32 BaslanangicSayisi = SayfadakiKayit * (SayfaIndex + 1);
if (BaslanangicSayisi > KayitSayisi)
{
DonecekKayitSay -= (BaslanangicSayisi - KayitSayisi);
}
return String.Format(
@" sp_executesql N’
select * from
(select top {0} * from
(select top {1} * from Customers order by {2} {3}) a
order by {2} {4}) b
order by {2} {3}’;",
DonecekKayitSay,
BaslanangicSayisi,
SiralanacakKolon,
Azalan ? "ASC" : "DESC",
Azalan ? "DESC" : "ASC");
}
23 Ekim 2014 Perşembe
SQL Saving changes is not permitted Hatası
Microsoft SQL Server Management Studio içerisinde, SQL tabloları üzerinde yaptığınız değişikliği kaydetmek istediğinizde, her hangi bir tablomuzun tipini değiştirmek istediğimizde yada tablo elemanının adını değiştirmek istediğimizde aşağıdaki gibi bir hata ile karşılaşırız.
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.
Buradaki Sorun Tabloda Bir değişiklik yapmak istediğimizde Management Studio’nun buna izin vermeyip tabloyu yeniden oluşturmamızı istemesidir.Aslında Çözüm yolu çok basit, aşağıdaki adımları izleyerek bu sorunun üstesinden gelmiş oluyoruz.
Tools menüsüne girip Option seçeneğine oradan da Designers‘a geçip Table and Database Designers seçeneğini seçiyoruz. Burada işaretli olan Prevent saving changes that require table re-creation checkbox’ın işaretini kaldırırsak bu hata ile bir daha karşılaşmamız oluruz.
Bu işlem sonrasında SQL Server 2008 Managament Studio ortamında oluşturmuş olduğumuz tablolar üzerinde istediğimiz değişiklikleri yapabiliyor olacağız.
22 Ağustos 2014 Cuma
SQL Server 2012'de Kümülatif Toplam Nasıl Alınır.
SQL Server 2012 den önce kümülatif toplama ihtiya duyduğumuz zamanlar genelde iç içe sorgular yazar ve sonuç elde etmeye çalışırdık. Sql'de kümülatif toplam almak eskisi kadar zor değil.
Microsoft SQL Server 2012 de Window Function özelliklerini geliştirerek, yeni özellikler katmış. Ansi standartlarından olan bu özellikleri sonraki makalelerimizde detaylı anlatacağım.
Bu makalemizde sadece kolayca kümülatif toplam nasıl alınırı göstereceğim.
İlk olarak aşağıdaki sorguyu çalıştırarak örnek tablomuzu oluşturalım.
?
1
2
3
4
5
6
7
8
9
10
11
12
| create table Ornek_AylikGelir(tarih datetime,Toplam int,) insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.01',100)insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.02',50)insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.03',20)insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.04',80)insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.05',100)insert into Ornek_AylikGelir(tarih,Toplam) values('2012.05.06',200) |
Aşağıdaki sorgu ile tarihe göre sıralı olarak kümülatif toplam almış oluruz.
?
1
2
| select tarih,Toplam,sum(Toplam) over(order by tarih) as KumulatifToplam from Ornek_AylikGelir |
Önceki makalemizi okursanız 2012 den önceki SQL Server versiyonlarında bunu nasıl yapacağınız görebilirsiniz. Yukarıdaki Sorgunun sonucu aşağıdaki gibi dönmektedir.
| tarih | Toplam | KumulatifToplam |
|---|---|---|
| 2012-05-01 00:00:00.000 | 100 | 100 |
| 2012-05-02 00:00:00.000 | 50 | 150 |
| 2012-05-03 00:00:00.000 | 20 | 170 |
| 2012-05-04 00:00:00.000 | 80 | 250 |
| 2012-05-05 00:00:00.000 | 100 | 350 |
| 2012-05-06 00:00:00.000 | 200 | 550 |
Kaydol:
Kayıtlar (Atom)
