Osman KURT

Kendime Not

MSSQL Üzerinde Sayfalama İşlemi

Merhabalar,

MSSQL 2008 ve MSSQL 2012 de sayfalama işleri nasıl yapılır.

MSSQL 2008

Declare @pageNumber INT=2;
Declare @totalPage INT=3;

WITH PageList AS
(
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS LineNo, m. * FROM Pages as m
)

SELECT *
FROM PageList
WHERE LineNo BETWEEN (@pageNo - 1) * @totalPage + 1
AND @pageNo * @totalPage

MSSQL 2012

Yukarıdaki ROW_NUMBER() performansımdan ve daha kolay kullanım sağlamak için yeni geliştirmeler bulunmaktadır.

SELECT * FROM Pages
ORDER BY ID ASC
OFFSET 200 ROWS
FETCH NEXT 220 ROWS ONLY

Osman KURT
Yazılım Uzmanı

Entity Framework İncelikleri

Merhaba arkadaşlar,

Entity framework kullanan bir çok arkadaş belki karşılaşmıştır. Bazı tablolar var ki ne yaparsanız yapın bir türlü entity model içine dahil edemezsiniz.

Geçen günlerde benim de başıma geldiği için yazma gereği duydum. Arkadaşlar eğer bir tablo entity model içine dahil edilemiyorsa bunun ilk sebebi tablonun bir primary key alana sahip olmamasıdır. Dİyebilirsiniz ki her tablo zaten dahildir. Ben şahidim değil :) olmadığı durumları da gördü bu gözler.

Eee Osman efendi bunun çözümü nedir diye soracaksınız. Basit arkadaşlar PK yoksa bile PK olarak kullanabilecek bir alan için nulleble alanını null geçilemez olarak ayarlamak gerekir. Eğer gerekli ayarlamayı yaparsak Entity bu alanı readonly olarak key atayacak ve tabloyu modelinize dahil edecek. Siz de istediğiniz gibi kullanabilirsiniz.

Kolay gelsin,

Osman KURT
Yazılım Uzmanı C# Uzmanı

MsSql Joinli Sorguda Update İşlemi

Merhabalar,

Sql'de update işlemi basit fakat bunu aynı anda birden çok tabloda yapmak bazı arkadaşlar için sıkıntı olabiliyor. Basit ama kullanışlı bir paylaşım olacaktır diye yazıyorum bu gönderiyi. Gerçekten ihtiyaç duyulabiliyor. Join işlemine eminim ki birçok arkadaşımız zaten hakimdir. Şimdi alt kısımda asıl paylaşımı veriyorum.

 
UPDATE f
SET    f.AnketID = a.AnketID
FROM   Firma AS f
       INNER JOIN Anketler AS a
       ON  a.FirmaID = f.FirmaID
WHERE  f.AnketID IS NULL

Kodumuz bu kadar arkadaşlar, umarım işinizi kolaylaştırmıştır.

Osman KURT
C# Yazılım Uzmanı