En iyi yanıtlayıcılar
sql çümlesiyle bir tablonun içinde olan 3 hane olanları getir 5 hane olanları getir

Soru
-
Yanıtlar
-
Selam,
Predicate olarak Function kullanman, Index kullanımını engeller. Yani LEFT(CODE,2)='00' dersen, o sorguda Index kullanılmaz ve ya Table Scan yapılır ya da Index Scan. Her halükârda büyük tablolarda veya sık uygulanan işlemlerde büyük performans sıkıntısına neden olur. Böyle kodları Production ortamına taşımadan önce dikkatli olmalısın (şayet durumun bu anlattıklarıma uygunsa).
Hata mesajı da, CODE alanına tanımlı bir Unique Index olduğunu söylüyor ve bu nedenle aynı değeri iki kere giremezsin. Bu yazdığın UPDATE komutuyla, tüm sıfırları temizlemeye çalışıyorsun, rakamın sağında veya solunda farketmez. Bunun sonucunda da aynı değerler oluşuyor ve bu nedenle bu hatayı alıyorsun.
Ekrem Önsoy - MCDBA, MCITP:DBA+DBD, MCSD.Net, MCSE, ITILv3 | http://ekremonsoy.blogspot.com
- Yanıt Olarak İşaretleyen Ali Rıza İnceoğlu 31 Ağustos 2012 Cuma 09:38
Tüm Yanıtlar
-
SELECT * FROM LG_120_01_SERILOTN
WHERE LEFT(CODE,2)='00'getiriyor tesekkürler
ama simdide söyle bir sorun veriyor günceledigimde
UPDATE LG_120_01_SERILOTN SET CODE = REPLACE(code, '0', '') sorgusu bu
Msg 2601, Level 14, State 1, Line 1
Cannot insert duplicate key row in object 'dbo.LG_120_01_SERILOTN' with unique index 'I120_01_SERILOTN_I2'.
The statement has been terminated.Hayat Bazen Yasamaya Deger Oldugu Kadar Ölmeyede Deger
-
Selam,
Predicate olarak Function kullanman, Index kullanımını engeller. Yani LEFT(CODE,2)='00' dersen, o sorguda Index kullanılmaz ve ya Table Scan yapılır ya da Index Scan. Her halükârda büyük tablolarda veya sık uygulanan işlemlerde büyük performans sıkıntısına neden olur. Böyle kodları Production ortamına taşımadan önce dikkatli olmalısın (şayet durumun bu anlattıklarıma uygunsa).
Hata mesajı da, CODE alanına tanımlı bir Unique Index olduğunu söylüyor ve bu nedenle aynı değeri iki kere giremezsin. Bu yazdığın UPDATE komutuyla, tüm sıfırları temizlemeye çalışıyorsun, rakamın sağında veya solunda farketmez. Bunun sonucunda da aynı değerler oluşuyor ve bu nedenle bu hatayı alıyorsun.
Ekrem Önsoy - MCDBA, MCITP:DBA+DBD, MCSD.Net, MCSE, ITILv3 | http://ekremonsoy.blogspot.com
- Yanıt Olarak İşaretleyen Ali Rıza İnceoğlu 31 Ağustos 2012 Cuma 09:38