MS SQL Server etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
MS SQL Server etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Ocak 2018 Cumartesi

SQL Server Hata Mesajı IDENTITY_INSERT

        Bazen tablo içerisindeki identity alan ile birlikte verileri yeni veritabanına aktarmak gerekebilmektedir. Normal şartlarda identity Örneğin "is_RECno" alanı yeni veritabanında 1 den başlayarak oluşmaktadır. Bu durumu çözebilmek için "SET IDENTITY_INSERT dbo.TABLOİSMİ ON" olarak işaretleyerek kayıtları aktarabilirsiniz.

An explicit value for the identity column in table "Tablo İsmi" can only be specified when a column list is used and IDENTITY_INSERT is ON 

SET IDENTITY_INSERT dbo.ISEMIRLERI ON
GO

INSERT INTO dbo.ISEMIRLERI (is_RECno, is_RECid_DBCno, is_RECid_RECno, is_fileid, is_Kod, is_Ismi, is_BaslangicTarihi)
SELECT is_RECno, is_RECid_DBCno, is_RECid_RECno, is_fileid, is_Kod, is_Ismi, is_BaslangicTarihi
FROM MikroDB_V15_FIRMA.dbo.ISEMIRLERI
GO

SET IDENTITY_INSERT dbo.ISEMIRLERI OFF
GO

21 Mart 2017 Salı

MS SQL Server'da veritabanı bazında açık ve aktif bağlantılar

         MS SQL Server'da çalışan ve aktif bağlantıları izlemek için bu sorgu yardımcı olacaktır. Veritabanı, kullanıcı adı, sunucu adı, ve bağlantı sayılarını göstermektedir.

SELECT TOP 100 PERCENT

     DB_NAME(dbid) AS DBName
    ,loginame AS LoginName
    ,hostname AS HostName
    ,COUNT(dbid) AS NumberOfConnections

FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame, hostname

16 Ocak 2017 Pazartesi

SQL Server Management Studio da koyu tema kullanmak

      SQL Server Management Studio 'da sorgu yazarken beyaz yerine siyah ekranda sorgular yazmak isterseniz. Yada benim gibi koyu tema kullanmayı seviyorsanız. Aşağıdaki link'i kullanarak ayarları içeren dosyayı indirip Tools - Import and Export Settings den içeri alabilirsiniz.





My SSMS colors


İndirmek için link
AB.DarkScheme.vssettings.zip
Kaynak

13 Aralık 2016 Salı

T-SQL Dikey Modu Seçimi

       T-SQL sorgu tasarlarken dikey seçim modu "Ctrl+Alt+Up/Down Arrow" ile çoklu sorgu düzenlemeleri yapabiliriniz.

28 Nisan 2016 Perşembe

Microsoft SQL Server'da Kilitlenmiş Prosesleri Sorgulamak

MS SQL Server üzerinde kilitli kalmış prosesleri sorgulamak gerekebilir. Eğer mevcut çalışan ERP yazılımına trigger ile araya girecek şekilde yazıyorsanız ilgili ekrana bağlı tabloları kilitleyebilirsiniz.

SELECT
        cmd
       ,spid
       ,kpid
       ,login_time
       ,last_batch
       ,status
       ,hostname
       ,nt_username
       ,loginame
       ,hostprocess
       ,cpu
       ,memusage
       ,physical_io

FROM sys.sysprocesses
WHERE cmd = 'KILLED/ROLLBACK'
ORDER BY cmd


Tüm prosesleri görüntülemek için WHERE kriterini kaldırabilirsiniz.

SELECT
        cmd
       ,spid
       ,kpid
       ,login_time
       ,last_batch
       ,status
       ,hostname
       ,nt_username
       ,loginame
       ,hostprocess
       ,cpu
       ,memusage
       ,physical_io

FROM sys.sysprocesses
ORDER BY cmd

25 Mart 2016 Cuma

SQL Server Management Studio – Büyük ve Küçük harf Kısayolu


Yazdığınız sorguyu seçip CTRL+SHIFT+U ile büyük harf ve CTRL+SHIFT+L ile küçük harfe dönüştürebilirsiniz.

Büyük harf : CTRL+SHIFT+U
SELECT *
FROM DBO.CARI_HESAP_HAREKETLERI
WHERE CHA_TARİHİ BETWEEN '20160101' AND '20160131'

Küçük harf : CTRL+SHIFT+L
select *
from dbo.carı_hesap_hareketlerı
where cha_tarihi between '20160101' and '20160131'

24 Aralık 2015 Perşembe

TSQL Sorgusunda Alt Toplam

TSQL sorgularımızda toplam alma ihtiyacımız olabiliyor.
Basit bir örnek.


SELECT TOP 100 PERCENT
        COALESCE(CAST(sth_stok_kod AS VARCHAR), 'TOPLAM') AS [STOK]
       ,SUM(sth_miktar) AS [MİKTAR]
       ,SUM(sth_tutar) AS [TUTAR]
FROM dbo.STOK_HAREKETLERI
GROUP BY sth_stok_kod
WITH ROLLUP


29 Nisan 2014 Salı

Mikro'da muhasebe fişleri ve cari bağlantı evraklarının kontrol raporu

Merhabalar,
Girişi yaptığımız kayıtların muhasebe fişlerinin kontrolünü her zaman yaparız. Ancak muhasebedeki fişlerin ticari bağlantısı olmayan fişler var mı şeklinde bir kontrol yapmayız. Yapmak için çok uğraşırız.

Aşağıdaki rapor sorgusu işinizi çözecektir. Function'u oluşturup sorguyu menüye ekleyerek çalıştırabilir veya function içerisinden sorguyu alıp yanlızda çalıştırabilirsiniz.

Rapor sorgusu: SELECT TOP 100 PERCENT * FROM dbo.rp_MuhasebeCariKontrolYonetimi(?T1,?T2)

Mikro veritabanına oluşturulacak fonksiyon:
CREATE FUNCTION dbo.rp_MuhasebeCariKontrolYonetimi(@Ilktar as datetime, @Sontar as datetime)
RETURNS TABLE AS
RETURN
(
SELECT TOP 100 PERCENT

      fis_RECno AS [KAYIT NO]
     ,fis_tarih AS [TARİH]
     ,fis_sira_no AS [SIRA NO]
     ,fis_satir_no AS [SATIR NO]
     ,fis_yevmiye_no AS [YEVMİYE NO]
     ,fis_hesap_kod AS [HESAP KODU]
     ,dbo.fn_MuhHesapIsmi(fis_hesap_kod) AS [HESAP İSMİ]
     ,fis_aciklama1 AS [AÇIKLAMA]
     ,dbo.fn_FisTur(fis_tur) AS [FİŞ TİPİ]
     ,dbo.fn_BORC(fis_meblag0) AS [BORÇ]
     ,dbo.fn_ALACAK(fis_meblag0) AS [ALACAK]
     ,dbo.fn_FisAktifPasif(fis_aktif_pasif) AS [FİŞ DURUMU]
     ,dbo.fn_FisMahsupTur(fis_fmahsup_tipi) AS [MAHSUP TİPİ]
     ,RTrim(dbo.fn_ResourceSplit ('A',883,fis_ticari_tip+1,DEFAULT)) AS [ENTEGRASYON KAYNAĞI]
     ,CASE WHEN fis_ticari_tip IN (1,5) THEN dbo.fn_StokHarEvrTip(fis_ticari_evraktip)
            WHEN fis_ticari_tip = 2 THEN dbo.fn_CariHarEvrTipUzun(fis_ticari_evraktip)
            WHEN fis_ticari_tip = 3 THEN dbo.fn_GetResource('S',1769,DEFAULT)
            WHEN fis_ticari_tip = 4 THEN dbo.fn_GetResource('S',1785,DEFAULT)
            WHEN fis_ticari_tip = 6 THEN dbo.fn_GetResource('S',1786,DEFAULT)
            WHEN fis_ticari_tip = 7 THEN dbo.fn_GetResource('S',1787,DEFAULT)
            ELSE '' END AS [EVRAK TİPİ]
     ,fis_tic_evrak_seri AS [EVRAK SERİ]
     ,fis_tic_evrak_sira AS [EVRAK SIRA]
     ,CASE WHEN fis_ticari_tip IN (1,5)
            THEN (SELECT CASE WHEN COUNT(*)>0 THEN 'VAR' ELSE 'YOK' END
                     FROM dbo.STOK_HAREKETLERI WITH(NOLOCK)
                     WHERE sth_RECno=fis_ticari_RECno)
            WHEN fis_ticari_tip = 2     
            THEN (SELECT CASE WHEN COUNT(*)>0 THEN 'VAR' ELSE 'YOK' END
                     FROM dbo.CARI_HESAP_HAREKETLERI WITH(NOLOCK)
                     WHERE cha_RECno=fis_ticari_RECno)
            ELSE '' END AS [TİCARİ EVRAK BAĞLANTISI]

FROM dbo.MUHASEBE_FISLERI WITH (NOLOCK)
WHERE (fis_tarih BETWEEN @Ilktar AND @Sontar)
ORDER BY fis_tarih, fis_sira_no, fis_satir_no
)

6 Haziran 2013 Perşembe

Microsoft SQL Server 2014'e hazırmısınız.

Çıkış tarihi henüz net değil, ancak SQL Server 2014 CTP 1 birkaç hafta içinde yayımlanması bekleniyor.

SQL Server 2014 ayrıntıları, temel özellikleri ve yeteneklerine göre, performansıda giderir bellek içi işlemler ve bulut erişilebilirlik sağlayacak.

Online işlemler "Online Transaction Processing" (OLTP), veri ambarı ve iş zekası için In-Memory yanı sıra büyük ölçekli ve tüm veritabanı iş yükleri arasında Kritik Performans sağlayacak.

Excel gibi bilinen araçları kullanarak tam bir BI çözümü ve daha hızlı sonuçlar sağlayacağı söyleniyor.

Detaylar için http://blogs.technet.com/b/dataplatforminsider/archive/2013/06/05/sql-server-2014-a-closer-look.aspx

7 Ağustos 2012 Salı

SQL Server 2008 R2 - Cumulative update package 1

MS SQL Server 2008 R2 Service Pack 2nin ardından çok hızlı düştü.

SQL Server 2008 R2 Service Pack 2 den kaynaklanana bazı sorunlar için yeni bir güncelleme yayınladı.

SQL Release Services Blog
http://blogs.msdn.com/b/sqlreleaseservices/archive/2012/08/01/cumulative-update-1-for-sql-server-2008-r2-service-pack-2.aspx

Unutmayınız DB Server kurulumu yapmak başka sorunlara yol açabilir.
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2720425&kbln=en-us

31 Temmuz 2012 Salı

28 Aralık 2011 Çarşamba

SQL Server 2012 CONCAT Function hakkında – PRINT

SQL Server 2012 ile CONCAT functionu geliyor. String çerimlerinde fazladan dok yazmayı engelleyecek faydalı bir function.

PRINT ifadesini kullanarak ve doğrudan string ve datetime veri tür dönüşümlerinde aşağıdaki hatayı alırız.

PRINT 'Current Time ' + GETDATE()

 

SQL Server 2012 versiyon öncesinde çevirim işlemine tabi tutmak gerekiyordu.
PRINT 'Current Time ' + CAST(GETDATE() AS VARCHAR(20))

SQL Server 2012 versiyonu ile gelen CONCAT functionu ile daha hızlı kod yazmak mümkün olabilecek.
PRINT CONCAT('Current Time ', GETDATE())

14 Aralık 2011 Çarşamba

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server.

SELECT *
FROM OPENROWSET('SQLOLEDB', 'Trusted_Connection=Yes;Server=(local);Database=MikroDB_V14_FIRMA', 'exec dbo.rp_PersonelCalismaListesi ''20111201'',''20111231''')
GO

SQLOLEDB aracılığı ile "SELECT FROM stored procedure" stored procedur çalıştırıyorsanız yada farklı bir yöntemle "SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource" mesaj alıyorsanız.

Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

--Gelişmiş seçenekleri tamamını göstermesi için;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE WITH OVERRIDE

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE WITH OVERRIDE

--Tüm parametreleri görmek için;
EXEC sp_configure

3 Mayıs 2011 Salı

Microsoft SQL Server 2008 R2 Intelli Sense çalışmıyor.

Visual Studio 2010 SP1 kurulduktan sonra eğer SQL Server 2008 R2 üzerinde query yazarken intelli sense çalışmıyor ise aşağıdaki SP1 CTP yükleyerek bu sorunu çözebilirisiniz.

SQL Server 2008 R2 Service Pack 1 CTP'de düzeltilen hataların listesi
Microsoft® SQL Server® 2008 R2 Service Pack 1 Community Technology Preview

Henüz test aşamasında olan CPT 'yi uygulama sunucunuz üzerine kurmamanızı tavsiye ederim.
Güncelleme yaparken unutmayın; birşeyler çözüme kavuşurken başka birşeylerde bozulabilir...