PDA

View Full Version : بدست آوردن لیست StoredProcedures های غیره سیستمی موجود در Data Base و حذف آنها



AmirAmiri
سه شنبه 13 مهر 1389, 16:53 عصر
با استفاده از یکم دستورات SQL میشه اینکارو کرد.
اول لیست کردن تمامه Stored Procedure های موجود در Data Base

SELECT NAME FROM sys.objects WHERE type='P'اما این دستور یه مشکل کوچولو هم داره و اونم اینه که تعدادی از sp های سیستمی رو بهتون میده که شاید نخواید اونا رو بده پس میتونید یک کاری کنید ، نام sp های خودتون رو با یک کلمه مخصوص شروع کنید.
مثلا من تمامه sp های خودم رو اینطوری نام گذاری میکنم:

CREATE PROC proc_[sp name]اگه اینکارو بکنید میتونید sp های خودتون رو فیلتر کنید:

SELECT NAME FROM sys.objects WHERE type='P' AND NAME LIKE 'proc_%'حالا شاید دوست داشته باشید این sp ها رو یکجا پاک کنید. مثل من.
برای اینکار باید کمی کد نویسی کنید که من اینکارو براتون انجام دادم:

DECLARE @sp_Name nvarchar(MAX)
SET @sp_Name=''
SELECT @sp_Name=NAME FROM sys.objects WHERE type='P' AND NAME LIKE 'proc_%'
WHILE(@sp_Name!='')
BEGIN
exec('DROP PROC ' + @sp_Name)
SET @sp_Name=''
SELECT @sp_Name=NAME FROM sys.objects WHERE type='P' AND NAME LIKE 'proc_%'
END
من که مشکلم اینطوری حل شد. شاید راه های خیلی آسون تری هم داشته باشه که حتما داره اما من از این راه مشکلم حل شد.
موفق و پیروز باشید.