Logo ERP ürünlerini kullanan kullanıcılar, bazı durumlarda firma silme işlemine ihtiyaç duyabilir. Bu durumlar arasında;
- Test amaçlı açılan firmalar
- Çok eski yıllara ait firmalar
- Artık kullanılmayan firmalar
- Yanlışlıkla açılan firmalar
- Veritabanı boyutunu azaltma
sayılabilir. Bu yazıda, Logo firma silme işleminin adımlarından bahsedeceğiz. Firma silindikten sonra Sql Server veritabanındaki verilerin nasıl silinebileceğini de anlatacağız.
1.Adım: Sys den Firma ve Dönem Silme
- Sistem işletmeni (sys) ye giriş yapılır.
- Üst menüden Yönetim –> Firmalar seçilir.
- Silinecek firmanın sol tarafındaki ok işaretine tıklanır.
- Dönemler altındaki bir veya birden fazla dönem, sağ tuş –> Çıkar denilerek çıkarılır.
- Dönemler silindikten sonra, firma üzerinde sağ tuş –> Çıkar denilerek firma çıkarılır.
2.Adım: Veritabanındaki Verileri Silme
- Sql Server Management Studio açılır.
- New Query penceresine girilir.
- Aşağıdaki sorgu, new query penceresine kopyalanır ve firma no alanı değiştirilir.
DECLARE @firmno varchar(3)='999' /*Silinecek firma numarasını 3 karakter olacak şekilde başına 0 ekleyerek yaz*/
DECLARE @view_name SYSNAME
DECLARE @table_name SYSNAME
DECLARE @procedure_name SYSNAME
DECLARE @function_name SYSNAME
/*View Silme İşlemi Başlangıç*/
DECLARE Logo_objs CURSOR FOR
SELECT name
FROM sysobjects
WHERE (name LIKE 'LV_' + @firmno + '%' AND xtype='V' )
ORDER BY NAME
OPEN Logo_objs
FETCH NEXT FROM Logo_objs INTO @view_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE('DROP VIEW '+ @view_name)
FETCH NEXT FROM Logo_objs into @view_name
END
CLOSE Logo_objs
DEALLOCATE Logo_objs
/*View Silme İşlemi Bitiş*/
/*Tablo Silme İşlemi Başlangıç*/
DECLARE Logo_objs CURSOR FOR
SELECT name
FROM sysobjects
WHERE (name LIKE 'LG_' + @firmno + '%' AND XTYPE = 'U')
ORDER BY NAME
OPEN Logo_objs
FETCH NEXT FROM Logo_objs INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE('DROP TABLE '+ @table_name)
FETCH NEXT FROM Logo_objs into @table_name
END
CLOSE Logo_objs
DEALLOCATE Logo_objs
/*Tablo Silme İşlemi Bitiş*/
/*Prosedür Silme İşlemi Başlangıç*/
DECLARE Logo_objs CURSOR FOR
SELECT name
FROM sysobjects
WHERE (name LIKE '%' + @firmno + '%' AND XTYPE = 'P')
ORDER BY NAME
OPEN Logo_objs
FETCH NEXT FROM Logo_objs INTO @procedure_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE('DROP PROCEDURE '+ @procedure_name)
FETCH NEXT FROM Logo_objs into @procedure_name
END
CLOSE Logo_objs
DEALLOCATE Logo_objs
/*Prosedür Silme İşlemi Bitiş*/
/*Fonksiyon Silme İşlemi Başlangıç*/
DECLARE Logo_objs CURSOR FOR
SELECT name
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE (name like 'LG_' + @firmno + '%' AND type ='FN')
ORDER BY NAME
OPEN Logo_objs
FETCH NEXT FROM Logo_objs INTO @function_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE('DROP FUNCTION '+ @function_name)
FETCH NEXT FROM Logo_objs into @function_name
END
CLOSE Logo_objs
DEALLOCATE Logo_objs
/*Prosedür Silme İşlemi Bitiş*/
- İşlem başarıyla tamamlandıktan sonra, 1.adımda silinen firmaya ait, tablo, view, prosedür ve fonksiyonlar temizlenmiş olur.
- İsteğe bağlı olarak shrink işlemi yapılarak veritabanı boyutu küçültülebilir.
Yukarıdaki işlem adımları sırayla yapıldıktan sonra, Logo Firma Silme işlemi, hem program, hem veritabanı tarafında tamamlanmış olur.

