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

?
1
2
3
4
SELECT kolon1, kolon2, kolon3
FROM tabloadi
GROUP BY kolon1, kolon2, kolon3
HAVING COUNT(*) > 1

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. 

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. 




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 = ‘YeniSifreGOALTER 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

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
  1. Tools
  2. Options
  3. SQL Server Object Explorer
  4. 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.
tarihToplamKumulatifToplam
2012-05-01 00:00:00.000100100
2012-05-02 00:00:00.00050150
2012-05-03 00:00:00.00020170
2012-05-04 00:00:00.00080250
2012-05-05 00:00:00.000100350
2012-05-06 00:00:00.000200550