Statik Prefix ve Oluşturulma Tarihi ile Veritabanındaki Tabloları Seçmek için Basit Cursor

Posted by: copy_zenx_wordpress_master
Category: Level 50

Statik Prefix ve Oluşturulma Tarihi ile Veritabanındaki Tabloları Seçmek için Basit Cursor

Aşağıdaki cursor sorgusu, veritabanında çalışır ve belirli ön eklerle (‘b_’,’delete_’) tüm tabloyu bulur. Ayrıca Tablonun belirli günlerden eski olup olmadığını veya belirli günlerden önce oluşturulmuş olup olmadığını kontrol eder, siler. Bu tablo üzerinde silmek, yazdırmak veya indekslemek gibi başka herhangi bir işlemimiz olabilir.

 

SET NOCOUNT ON

DECLARE @lcl_name VARCHAR(100)

DECLARE cur_name CURSOR FOR

SELECT name

FROM sysobjects

WHERE type = ‘U’

AND crdate <= DATEADD(m,-1,GETDATE())

AND name LIKE ‘b_%’

OPEN cur_name

FETCH NEXT FROM cur_name INTO @lcl_name

WHILE @@Fetch_status = 0

BEGIN

SELECT @lcl_name = ‘sp_depends’ +@lcl_name

PRINT @lcl_name

— EXEC (@lcl_name)

FETCH NEXT FROM cur_name INTO @lcl_name

END

CLOSE cur_name

DEALLOCATE cur_name

SET NOCOUNT OFF

 

İşte cursorlarla ilgili olarak hatırlanması gereken noktalardan birkaçı.

  • Cursorlar, WHILE döngülerini kullandıkları için döngülerden başka bir şey değildir.
  • Cusror’ların aşırı kullanımı, çok fazla kaynak kullanabileceklerinden sorgu performansını olumsuz etkileyebilir.
  • Bir seferde bir satır eklemek için imleç yerine küme teorisini, SELECT…INSERT veya INSERT INTO…SELECT gibi işlemleri kullanmak daha iyidir.

Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!

Author: copy_zenx_wordpress_master