Sayfalar

12 Eylül 2023 Salı

SQL Server İnstance'ınızda Yer Alan Compability Level Seviyelerini Gösteren T-SQL Komutu

 

Veritabanlarımızın hangi Compability Level seviyesinde olduguna aşağıda ki komut ile ulaşabilirsiniz:



SELECT name, compatibility_level FROM sys.databases;

Türkçe Outlook Programında İngilizce Menü Sorunu

 Türkçe dil paketi ile yüklenmiş,Outlook programında İşletim Sistemi Bölgesel ayarları ve Office programı Türkçe olmasına rağmen,Gelen kutusu Inbox,Gönderilmiş Öğeler Sent vs.. şeklinde görülmekteydi. Sorunu Outlook programını kapattıktan  sonra aşağıda yer alan komutları başlar çalıştır'a yazarak çözebilirsiniz:

Öncelikle Outlook'tan çıkın.

1) Başlat-Çalıştır Outlook.exe /resetfolders

Yukarıda ki komut ile çözülmez ise;

2) Başlat-Çalıştır Outlook.exe /resetfoldernames



komutları ile sorunu çözebilirsiniz.

25 Ağustos 2023 Cuma

Truncate ve Delete Komutları Arasındaki Farklar

 SQL Sunucu'da veri silme amaçlı kullandıgımız Delete ve Truncate komutları afrasında aşağıda ki farklar vardır:


  • Delete komutu ile where kısıtı vererek silme işlemi yapabiliriz,Truncate komutunda kısıt kullanımı yoktur.
  • Delete komutu ile rollback işlemi yapabilirizitruncate komutunda rollback yapılmaz.
  • Delete log dosyasını buyutur ve bellek kullanır,Truncate komutu ile az log dosyası kullanılır,bellek kullanılmaz.
  • Delete komutu iz bırakır,diskte yer işgal eder,Truncate direkt purge işlemi yapılır,disk boşalır.

Truncate hızlı ve daha az kaynak için kullanılır,delete ise biraz daha performans gerektirir.Bu komutları ihtiyacımıza göre dikkatli kullanmamız gerekir.

6 Mart 2023 Pazartesi

Drop failed for User Hatası(Schema Yetkisi Olan Kullanıcı ile İlgili)

 SQL Sunucu'da Rapor almak için sadece datareader olarak hak verilen Windows Session kullanıcisini silmek istediğimizde aşağıdaki hatayı alıyorduk;







"TITLE: Microsoft SQL Server Management Studio

------------------------------

Drop failed for User 'domain\user'.  (Microsoft.SqlServer.Smo)

For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.47021.0&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+User&LinkId=20476------------------------------

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138)

For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-15138-database-engine-error

------------------------------

BUTTONS:

OK

------------------------------"


Hatanın T-SQL olarak ta çözümü olmasına rağmen SQL SSMS üzerinden aşağıdaki şekilde çözülebilmekte:




Öncelikle Schemas düğümünü açıp kullanıcıya datareader schema hakkı verdiğimiz için datareader'ı çift tıklama ile açmamız gerekmekte:





Ardından Schema Properties-General tabına geçip,Schema Owner kısmında ki kullanıcıyı silip burayı db_datareader olarak belirlememiz gerekmektedir.





Bu işlemleri yaptıktan sonra T-SQL Drop user komutu veya Security bölümünde ki kullanıcıyı seçip silme işlemini gerçekleştirebiliriz.


18 Ocak 2023 Çarşamba

SQL Sunucu'dan Excel'e Rapor Alırken Oluşan Türkçe Karakter Problemi Çözümü


SQL Sunucu'dan Excel'e Rapor Alırken Oluşan Türkçe Karakter Probleminin Çözümü için aşağıdaki fonksiyonu oluşturup,oluşan fonksiyonu view içinde çağırmamız gerekmektedir.Bu sayede Excel'de Türkçe karakter problemi çözülmüş olacaktır.




 CREATE FUNCTION [dbo].[TRK](@A NVARCHAR(4000))

RETURNS NVARCHAR(4000)  

AS 

BEGIN

 DECLARE @TMP NVARCHAR(4000) 

  SET @TMP = REPLACE(@A COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'Ğ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Ş')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'İ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'ğ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N'ş')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'ı')

  RETURN @TMP

END

GO