Kategori - SQL

MSSQL Database Tablo Satır Sayılarını Listeleme

Merhaba arkadaşlar, aşağıda bir database’in tüm tablo satır sayılarının toplamını listeleyen sql sorgusunu sizler ile paylaşıyorum. Aşağıdaki sorguya geçmeden önce bir kaç ufak ipucu vererek biraz bilgi tazelemenizi sağlayacağım.

Clustered Index: Her tablo yalnızca bir clustered indekse sahip olabilir. Aslında indeksin sahip olduğu tablo fiziksel olarak sıralanmaktadır.

Non-Clustered Index: Her tablo birden fazla non-clustered index’e sahip olabilir ve Non-Clustered Index veriyi bulmamızı sağlayacak imleçleri (değerleri) ifade eder.

Heap: Tabloda verilerin herhangi bir sıralama ve düzenin yapılmadığı doğal halidir diyebiliriz. Bu durumda veriler tamamen birbirinden bağımsız olarak ifade edilebilir.

SELECT
      QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [TableName]
      , SUM(sPTN.Rows) AS [RowCount]
FROM 
      sys.objects AS sOBJ
      INNER JOIN sys.partitions AS sPTN
            ON sOBJ.object_id = sPTN.object_id
WHERE
      sOBJ.type = 'U'
      AND sOBJ.is_ms_shipped = 0x0
      AND index_id < 2 -- 0:Heap, 1:Clustered
GROUP BY 
      sOBJ.schema_id
      , sOBJ.name
ORDER BY [TableName]
GO

Devamını Oku

SQL’de Dinamik Uniqueidentifier Kullanımı

Merhaba arkadaşlar dinamik SQL Uniqueidentifier kullanmaya çalışırken aşağıdaki hata kodu ile karşılaştım ve çözümünü de aşağıda sizlerle paylaşıyor olacağım. Aşağıdaki belirttiğim hatayı select sorgusunda uniqueidentifier şartı ile listeyi getirmeye çalışırken aldım. Aslında hatanın çözümü çok basit olmakla beraber büyük bir iş yükünden bizleri kurtarmaktadır.

Hata Kodu: Msg 402, Level 16, State 1, Procedure spGetNews, Line 11
The data types nvarchar(max) and uniqueidentifier are incompatible in the add operator.

Çözümü:

create proc spGetNews
@ID uniqueidentifier
as
begin
      declare @query nvarchar(MAX) = '';
      set @query ='select * from News where ID=@I'
      exec sp_executesql @query,N'@I uniqueidentifier',@I=@ID
end
GO

Devamını Oku

“A network-related or instance-specific error occurred while establishing a connection to SQL Server” Hatasının Çözümü

Merhaba arkadaşlar aşağıdaki sorun ile karşılaşanlar çözüm aslında gayet çok basit ve aşağıda sizlere bunları adım adım anlatıyor olacağım.

A network-related or instance-specific error occurred while establishing a connection to SQL Server

Hatanın Mesajı: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) Devamını Oku

SQL İnjection Saldırılarını Önleme Ve İpuçları

Sql Injection hangi sistem olursa olsun güvenlik için önemli bir tehdittir. Özellikle kişisel bilgilerin saklandığı ortamlar için güvenlik üst düzeyde olmalıdır.

SQL İnjection

Sistemlerin güvenlik seviyelerini geliştirmek için farklı yaklaşımlar vardır. Sql Injection, veritabanı ile kurulan bağlantıları herhangi bir uygulama tarafından tetiklenebilen yaygın saldırı biçinlerinden birisidir.

Aşağıda Sql Injection saldırılarına karşı veri güvenliğini sağlamak için çeşiktli örnekler bulunmaktadır. Devamını Oku

MsSql Len Komutu

Merhaba arkadaşlar bugün sizlere mssql‘de Len komutu yani sondaki boşluklar haricindeki belirtilen ifadenin karakter sayısını nasıl bulabiliriz onu anlatmaya çalışacağım. Evet arkadaşlar aşağıda Name kolonunun uzunluğunu userName kolonu adı altında büyükten küçüğe doğru(desc) listelettik.

  SELECT Name,Len(Name) as userName
  FROM YazilimSinifi
  order by userName desc

Bir başka makalede görüşmek dileğiyle…

Sedat Demirdoğan

MsSql Kolon Veri Tipini Değiştirmek

Merhaba arkadaşlar bugün sizlere çok basit fakat sık sık işimize yarayabilecek bir işlevi anlatacağım. Aşağıdaki örnekte sql‘de kolon veri tipini kolaylıkla değiştirebiliriz.

ALTER TABLE  TabloAdi
ALTER COLUMN KolonAdi nvarchar(250)

*Kolonun null geçilmesini istemiyorsak aşağıdaki örnekteki gibi yeni veri tipinin yanına “not null” eklememiz gerekmektedir.

ALTER TABLE  TabloAdi
ALTER COLUMN KolonAdi nvarchar(250) not null

Bir başka makalede görüşmek dileğiyle…

Sedat Demirdoğan

MsSql uniqueidentifier Kullanımı

Merhaba arkadaşlar bugün sizlere MsSql’de uniqueidentifier‘ın kullanımını ve hangi durumlarda bizlere katkı sağlayacağını anlatmaya çalışacağım. Bu işlem sırasında NEWID işlevini kullanacağız. NEWID 0-9 veya a-f aralığında onaltılık tabanda sabite dönüştürerek bir uniqueidentifier değeri oluşturmayı sağlar. Peki biz neden uniqueidentifier değer kullanıyoruz. uniqueidentifier tablodaki satırların karşılaştırıldığında benzersiz olmasını garantiler. Bu işlemde id’lerimiz veya herhangi bir sebep ile kullandığımız değerlerin çakışmasını önlemektedir. Şimdi anlattığım uniqueidentifier ile ilgili basit bir örnek yapalım…

Aşağıdaki örnekte UniqCode ve ParentID olmak üzere 2 adet NEWID işlevi ile uniqueidentifier ürettik.

    declare @UniqCode uniqueidentifier
    set @UniqCode = NEWID()
    declare @ParentID uniqueidentifier
    set @ParentID = NEWID()
    INSERT INTO UniqTable (UniqCode, ParentID) VALUES (@UniqCode, @ParentID) 

Devamını Oku