SQL Server’da Detach İşlemi Öncesi Veritabanı Bağlantısını Kesen Cursor

Herkese merhaba,

Bu yazıda SQL Server’da Detach işlemi öncesi veritabanı bağlantısını kesen cursor kullanımından bahsedeceğim.

Aslında bu Cursor’u bir soru üzerine yazdım. Belki birilerinin işine yarar diye düşünerekten.

SQL Server’da detach işlemi yaparken karşınıza bağlantı üzerine hatalar çıkabilir. Bu hataların kısa şekilde yazılmış kodlar ile çözümü olabildiği gibi aşağıda yazmış olduğum Cursor’u kullanarak da çözebilirsiniz.

DECLARE @dbname AS VARCHAR(80);
DECLARE @server_name AS VARCHAR(20);
SELECT @server_name = @@servername;
DECLARE rs_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name IN ( N'TestIslem' ); --Bu kısımda istediğiniz kadar veritabanı seçebilirsiniz. 
OPEN rs_cursor;
FETCH NEXT FROM rs_cursor
INTO @dbname;
IF @@FETCH_STATUS <> 0
    PRINT 'Bağlantı sonlandırılacak bir veritabanı yok ... Lütfen scriptinizi kontrol edin !!!';
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC ('ALTER DATABASE ' + @dbname + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
    EXEC ('ALTER DATABASE ' + @dbname + ' SET SINGLE_USER WITH ROLLBACK AFTER 60 SECONDS');
    EXEC ('ALTER DATABASE ' + @dbname + ' SET MULTI_USER');
    FETCH NEXT FROM rs_cursor
    INTO @dbname;
    PRINT 'Print ''SERVER ADI : ' + UPPER(@server_name) + '--> Tüm databaseler için bağlantı başarıyla kesildi.''';
END;
CLOSE rs_cursor;
DEALLOCATE rs_cursor;

Kodu çalıştırdığınız zaman ki ben burada TestIslem diye bir veritabanı kullandım.  Bu veritabanı üzerindeki açık olan bağlantıları sonlandıracaktır. Bu sayede detach işlemini başarıyla yapacaksınız.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

362 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!