PDA

View Full Version : حذف همه Stored Procedures ها و Function ها



JaVaD_1900
پنج شنبه 05 اردیبهشت 1392, 16:50 عصر
سلام، دستوری هس که بشه باهاش همه SP ها و Fun ها رو پاک کرد؟ یا باید دونه دونه Select کنیم و حذف کنیم؟

hessam2003
پنج شنبه 05 اردیبهشت 1392, 17:36 عصر
میشه توابع و زیرروال ها را در SQL غیر فعال کرد.
اما به نظرم دستوری نداره که به صورت مستقیم این کار را انجام داد بازم به این سایت رجوع کنید ممکن اطلاعاتی بدست بیارید.
www.w3schools.com

in_chand_nafar
پنج شنبه 05 اردیبهشت 1392, 21:54 عصر
این Select بهت یه سری دستور Drop تحویل میده اونها Copy & Past و در آخر Run کن تا SP بترکن
SELECT 'DROP '+ R.ROUTINE_TYPE +' ' +R.SPECIFIC_NAME
FROM INFORMATION_SCHEMA.ROUTINES R



------
نمونه خروجی
DROP PROCEDURE spAcc0014GetArticlesByID
DROP PROCEDURE spMhr0071SelectByFld0001
DROP PROCEDURE spMhr0027SelectAllByIDOzv
DROP FUNCTION udfGetSudZiyanCreditAD
DROP PROCEDURE spMhr007ChangeOzvGroup
DROP PROCEDURE spMhr0071Insert

حمیدرضاصادقیان
جمعه 06 اردیبهشت 1392, 00:08 صبح
سلام.
روش پیشنهادی در پست 3 روش بدی نیست ولی بهینه نیست.
میتونید از این کد استفاده کنید.
دیگر نیازی به هیچ Copy/Paste هم ندارید!

declare @query varchar(MAX)
SET @query='';
select @query=@query+' Drop '+TypeName+' '+isnull(FunctionName,'')+' '+isnull(ProcedureName,'')+';'
from (
SELECT Typename=Routine_type,
case
When Routine_type='FUNCTION'
Then SPECIFIC_Name End as FunctionName,
case
When Routine_type='PROCEDURE'
Then SPECIFIC_Name End as ProcedureName
From INFORMATION_SCHEMA.ROUTINES
) as a

exec (@query)

JaVaD_1900
جمعه 06 اردیبهشت 1392, 14:44 عصر
ممنون، خودم پیدا کرده بودم اما کند بود، این روش اقای صادقیان سریع بود. :لبخندساده: