'da bir sorguyu çalıştırmadan önce kaç satırın etkileneceğini bilmek nasıl ROWCOUNT hakkında biraz okudum ama tam olarak ne aradığım değil. Anlayışımdaki satır sayısı, sorguyu çalıştırdıktan sonra etkilenen satırların sayısını belirtir. Ne arıyorsun sorguyu çalıştırmadan ÖNCE bilmek. Mümkün mü?microsoft sql server 2008
cevap
Kısa cevap edilir etkilenecek kaç satır söyleyecektir hiçbir ..
Sen SQL server query..atleast çalıştırmadan önce satır sayısını elde edemezsiniz. o kazandı böylece
bunu yapmanın en iyi yolu' yazıp
[delete]or [update] [set col='val']
from <table> where <condtion>
SQL Server Analytical işlevlerini kullanarak, etkilenen toplam satır sayısını elde edebilirsiniz. Ama bu sadece çalışma zamanı. Hiçbir şeyin değişmesi gerekmeyen satırları atlayacağı için – rvphx
her zaman doğru olmayacaktır. örneğin: yeni değer ve eski değer zaten aynı. –
@HimanshuSaini: Bildiğim kadarıyla, SQL server güncellemeden önce eski ve yeni değerlerin aynı olup olmadığını kontrol etmeyecek. Sadece tüm kayıtları eşleşen koşullarla günceller. Bununla ilgili herhangi bir belge varsa lütfen paylaşın. Bu benim için yeni bir öğrenme olurdu –
En basit çözüm, SELECT * FROM...
içerisindeki sütunları SELECT Count(*) FROM ...
ile değiştirmektir ve çalıştırılmadan önce sorgunuzun geri kalanı (WHERE
maddesinin aynı olması gerekir). Bu
tahmin yürütme planı size satırları verecek istatistiklerine dayalı etkilenen gerçek sorguyu yürütmek
Select count(*) from <table> where <condtion>
kullanmaktır Bu durumda gerçekten sana yardım ederim.
Ne kopyalama senin UPDATE statement
veya DELETE statement
ve SELECT
haline çeviriyor öneriyoruz. Kaç tane satırın geri geldiğini görmek için bunu çalıştırın ve kaç satırın güncelleneceğini veya silindiğini yanıtladığınıza karar verin.
Örn:
UPDATE t
SET t.Value = 'Something'
FROM MyTable t
WHERE t.OtherValue = 'Something Else'
olur: işlem yürütülmeden önce
SELECT COUNT(*)
FROM MyTable t
WHERE t.OtherValue = 'Something Else'
Ayrıca BEGIN TRANSACTION kullanabilirsiniz. Etkilenen satır sayısını görebilirsiniz. Oradan, sonuçları COMMIT veya verileri orijinal haline geri koymak için ROLLBACK kullanın.
İşlem başlayın
Güncelleme Tablo seti col = 'şey' col2 = 'başka bir şey';
/Geri Alma- 1. Microsoft SQL Server
- 2. Microsoft SQL Server Yayımlama
- 3. Microsoft SQL Server 2012
- 4. SQL Server 2008 R2
- 5. SQL Server 2008 R2
- 6. SQL Server 2008 R2
- 7. SQL Server 2008 R2
- 8. SQL Server 2008
- 9. SQL Server 2008
- 10. SQL Server 2008
- 11. SQL Server 2008 R2
- 12. sql server 2008
- 13. Sql Server 2008
- 14. SQL Server 2008
- 15. SQL Server 2008
- 16. SQL Server 2008
- 17. SQL Server 2008 Express'ten 2008 Developer'a Yükseltme
- 18. SQL Server 2008 Hiyerarşi Veri Türü Performansı?
- 19. SQL Server 2008 uyumluluk düzeyi
- 20. sql server 2008 ekspres/enterprise
- 21. Güncellenebilir görünümler - SQL Server 2008
- 22. Android with SQL Server 2008
- 23. Microsoft SQL Server e-posta doğrulaması
- 24. Microsoft SQL Server "Express" sürümleri üzerinde geliştirme yapmak serbest mi?
- 25. SQL Server 2008 Standard'dan Developer'a Yükseltme?
- 26. SQL SERVER 2008'de SID nedir?
- 27. Renk kodlaması SQL Server 2008 veritabanları
- 28. SQL Server 2008 R2 Coğrafya Mesafe?
- 29. SQL Server 2008'de Bölüm Hizalanmış dizinler
- 30. SQL Server 2008 Yüksek CPU kullanımı
Hayır iki sorgu yapmadan mümkün değildir adayın. Bunu neden yapmak zorundasın? İsteğin nedenine bağlı olarak, sorguyu '@@ ROWCOUNT' kontrol edebilir ve beklendiği gibi gerçekleştirebilirsiniz. Veya sorgu ile satır sayısını döndürmek için 'COUNT (*) OVER()' kullanın. –