SQL脚本备件
时间:2011-04-18 来源:王红福
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Proc [dbo].[P_Sohu_ExportProc] ( @Filter nvarchar(200) =null/**//*查询条件 例如 where 1=1 */ ) /**//* Create By 王红福 备份存储过程,函数,触发器等,可直接运行 */ As Begin if @Filter is null Set @Filter = '' Declare @Text varchar(8000), @Name nvarchar(100), @XType nvarchar(20) Print 'Use ' + db_name() Declare myCurrsor Cursor For Select a.[Text],b.[name] from syscomments a Left Outer Join Sysobjects b On a.id=b.id + @Filter Open myCurrsor Fetch Next from myCurrsor into @Text,@Name While @@Fetch_Status = 0 --表示读取到数据,相当于 ADO 中 Not Eof Begin Select @XType=xtype from Sysobjects where [name]=@Name If @XType = 'TR' Begin Print 'if Exists(Select 1 from Sysobjects where xtype=''TR'' and [name]='''+@Name+''')' Print 'Drop Trigger '+@Name+'' End Else If @XType = 'FN' Begin Print 'if Exists(Select 1 from Sysobjects where xtype=''FN'' and [name]='''+@Name+''')' Print 'Drop Function '+@Name+'' End Else If @XType = 'P' Begin Print 'if Exists(Select 1 from Sysobjects where xtype=''P'' and [name]='''+@Name+''')' Print 'Drop Proc '+@Name+'' End Else GoTO NextFetch Print 'exec('''+replace(@Text,'''','''''')+''')' NextFetch: Fetch Next from myCurrsor into @Text,@Name End Close myCurrsor --关闭游标 Deallocate myCurrsor --删除游标 End
相关阅读 更多 +