Monday, September 11, 2023

WITH READPAST

Giriş
Açıklaması şöyle
READPAST skips through rows that are locked for update by other transactions but ONLY when the query you execute is about to get blocked on locked rows. So READPAST doesn’t skip locked rows on normal select queries because it can read from a snapshot (MVCC)
Örnek
Tabloda 1,2,3,4,5 satırları olsun. Şöyle yaparız
-- run transaction 1 and don’t commit;
BEGIN TRANSACTION;

UPDATE T SET F = 100 WHERE F = 1


-- in another transaction do
SELECT * FROM T WITH (READPAST)
Burada sonuç olarak 2,3,4,5 alırız. 1 numaralı satır atlandı

Şöyle yaparız
BEGIN TRANSACTION;
UPDATE T WITH (READPAST) SET F = 900 WHERE F < 10;
Burada 2,3,4,5 numaralı satırla güncellenir ama 1 numaralı satır atlanır.  Aynı şeyi şöyle de yapabiliriz
BEGIN TRANSACTION;

UPDATE T

SET F = 900 WHERE F IN( SELECT F FROM T WITH READPAST WHERE F < 10) 
Ama şöyle yapsaydık bloke olurdu. Çünkü WITH READPAST kullanılmadı
BEGIN TRANSACTION;

UPDATE T

SET F = 900 WHERE F < 10;

Monday, September 4, 2023

sa Kullanıcısı - Administrator

SQL Server kurulunca genellikle sa isimli bir administrator kullanıcı yaratılır

Sütun Tipleri - VARCHAR - UNICODE Karakterler İçindir

Giriş UNICODE olmayan normal karakterler İçindir Örnek Şöyle yaparız CREATE TABLE ExampleTable (     ExampleColumn VARCHAR(255) ); INSERT IN...