T-Sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
T-Sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Eylül 2014 Perşembe

bütün tabloların satır sayısını öğrenme

Bir tablonun satır sayısını öğrenmek kolaydır.

select count(*) from Tablo bize tablonun satır sayısını döner. Fakat bu, satır sayısı fazla olan, milyonlarca satır bulunan tablolarda pratik bir çözüm değildir.

Aşağıdaki script işinizi görecektir.


select distinct t.name,p.rows
from sys.partitions as p
inner join sys.tables as t
on p.object_id = t.object_id
where t.type = 'U'
and t.name <>'sysdiagrams'


  sys.partitions ve  sys.tables sistemde tanımlı view'lerdir.                                                             

13 Mayıs 2014 Salı

INNER JOIN ile tablo silme



Örneğin elimde Urunler ve Kategori diye iki tablo olsun. Aşağıdaki kod Urunler tablosundaki değerleri inner join ve where koşulunu baz alarak silme yapar.

delete Urunler
from Urunler
inner join Kategori
on Kategori.id = Urunler.Kategoriid
where Kategori.id = 3


5 Nisan 2014 Cumartesi

TRY_CAST

try_cast sql server 2012'de bulunan bir dönüştürme fonksiyonudur. cast ile aynı işi yapar sadece farklı olarak eğer dönüştürme hatalı ise NULL değeri döner.

Örnek:

select cast('a1bc'as integer)

böyle bir dönüşüm yapmaya çalışınca hata alırız.

Hata şu: "Conversion failed when converting the varchar value 'a1bc' to data type int."

Yani varchar tipini tamsayı tipine çeviremezsin diyor.

Fakat bazen çeviremiyorsa bile NULL dönmesi istenebilir bunun için try_cast kullanılır.

select try_cast('a1bc' as integer)

bu sorgu çalışınca  NULL değeri döner.

17 Aralık 2013 Salı

SELECT INTO ile tablo oluşturma

Aşağıdaki örnekte SELECT INTO kodu ile #Ogrenciler adında temp tablo oluşturuluyor. 



USE Deneme

GO
IF OBJECT_ID ('Tempdb..#Ogrenciler','U') IS NOT NULL
DROP TABLE #Ogrenciler;
GO
SELECT  OGRENCILER.SinifID, 
OGRENCILER.ad, 
OGRENCILER.soyad
INTO #Ogrenciler
FROM OGRENCILER
WHERE ad LIKE 's%';


GO


SELECT * FROM #Ogrenciler


Görüldüğü gibi temp tabloyu create koduna gerek duymadan oluşturduk ve istediğimiz değerleri insert ettik. 

11 Aralık 2013 Çarşamba

Geçici Bir Tablonun Olup Olmadığının Kontrolü

Merhaba bu blogumda  temporary tabloların Sql Server'da olup olmadığını t-sql script ile nasıl kontrol edebileceğimizi göstereceğim.

Örneğin bir procedure içinde temp tabloya ihtiyacınız oldu, tabloyu yaratmadan önce kontrol etmeniz gerekiyor -ki bunun bence faydası vardır.

IF OBJECT_ID('tempdb..#t1') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1(
  id INT IDENTITY(1,1),
  mesaj VARCHAR(255)
)

Aşağıdaki kodun yukarıdakinden farkı 'U' parametresini almasıdır. Bu parametre onun kullanıcı tanımlı tablo olduğunu garanti eder. Bu yüzden aşağıdaki kod daha keskin sonuç üretir.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1(
  id INT IDENTITY(1,1),
  mesaj VARCHAR(255)
)

5 Aralık 2013 Perşembe

Sql Sayfalandırma Uygulaması

Bu örnek kısa ve basit bir sayfalandırma örneğidir.
Diyelim elimizde Avukatlar diye bir tablo var.

Bunu Stored Procedure ile geliştireceğim.


CREATE PROC sp_SqlPagination(

@rowsPerPage int,
@pageNum     int

)

AS 

BEGIN
      WITH SqlPage
      AS
      (
      SELECT TOP (@rowsPerPage*@pageNum)
             ResultNum = ROW_NUMBER() OVER (order by Avukatlar.avukat_ad), 
             Avukatlar.avukat_tc_no,Avukatlar.avukat_ad,
             Avukatlar.avukat_soyad, Avukatlar.sicil_no
      FROM   Avukatlar 
      )

      SELECT * FROM SqlPage 
      WHERE SqlPage.ResultNum > @rowsPerPage*(@pageNum-1) 
END

Dışardan 2 parametre alıyor birisi bir sayfada, (@rowsPerPage) result sette kaç satır veri görüneceğini belirtiyor. Diğer parametre (@pageNum) ise kaçıncı sayfayı göstermemiz gerektiğini belirtiyor.