SQL Server'da tekrar eden satırları silmek

Tablonuzda belirli alanlarda tekrar eden veriler olmasını istemiyorsanız aşağıdaki sorguyla bu satırları tespit edebilir ve silebilirsiniz.

Daha sonra sorun yaşamamak adına yorum satırı olarak bıraktığım delete alanını sonuç kümesini gördükten sonra çalıştırınız

Kodda gerekli yerlere açıklamaları yazdım. 

WITH cte AS (
    SELECT  -- degerleri görmek için alanları belirtiyoruz, eşitlik durumu için partition bölümü kullanılmakta
        alan1, 
        alan2, 
        alan3, 
        alan4, 
        ROW_NUMBER() OVER (
            PARTITION BY -- belirtilen alanlar aynı ise diyoruz, tek bir alan da belirtebilirsiniz
        alan1, 
        alan2, 
        alan3
            ORDER BY 
        alan1, 
        alan2, 
        alan3
        ) row_num
     FROM 
        [dbo].[table_name] 
)
select * from cte --silmek için bu satırı 'delete FROM cte' olarak değiştiebilirsiniz
WHERE row_num > 1

 

 

TSQL ile uzak MsSql server'da sorgu çalıştırma

Bana sık sık lazım olunca blogumdan paylaşayım istedim

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
Select * from opendatasource('SQLOLEDB','DATA SOURCE=ipadresi;UID=kullaniciadi;PWD=sifre').veritabaniadi.dbo.tabloadi

Büyük sql script dosyalarını çalıştırmak

Database yapısı yanında içeriğinide taşımak istediğimde, çoğu zaman megabytelar uzunluğunda sql script dosyalarıyla boğuşmak zorunda kalıyordum.

Scriptlerde çoğu zaman ya memory hatası veriyor ya da bilgisayarın uzun süğre cevapsız kalmasına sebep oluyordu. Burda okuduğum yazıda "sqlcmd" ile bu problemin nasıl ortadan kaldırıldığı yazılmış özetle komut satırından;

sqlcmd -S YOURSQLSERVER\INSTANCENAME -i "C:\Your Script.sql”

ile büyük sql script dosyları sorusuz olarak çalıştırlabilmekteymiş.