最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
要源码
当前位置:主页 > 网站建设 > 将mater库中的系统存储过程批量生成*.sql文件 通用

将mater库中的系统存储过程批量生成*.sql文件 通用

时间:2023-05-22 11:05:22 阅读: 文章分类: 网站建设 作者: 网站技术员

导读:1建站知识最近因为系统需要,需要将master库的所有和业务相关的存储过程批量生成 存储过程名.sql 文件,默认是不可以导出的网站seo优化培训如何seo优化推广网站。

网站seo优化培训如何seo优化推广网站大家都知道系统存储过程是无法用工具导出的(大家可以试试 >任务>生成SQL脚本) 因为系统存储过程一般是不让开发人员修改的。 需要知识: 1、xp_cmdshell命令的使用 2、sp_MS_marksystemobject 标记系统存储过程的方法 3、dos 命令,如 type,>> 等 4、bcp 命令的使用

复制代码 代码如下:

use master go if OBJECT_ID('pr_procToSql') is not null drop proc pr_procToSql go create proc pr_procToSql ( @服务器名 varchar(100) ,@用户名 varchar(100) ,@密码 varchar(100) ,@path varchar(200) ,@database varchar(200) ,@sysproc int='0' --是否标记为系统函数 1:是,0:否 ,@proc_name varchar(100)='' --默认是所有,可以模糊搜索 ,@savetype varchar(200)='.sql' --默认保存为sql脚本 ) as /* 版本:v1 作者:达摩 日期:2012-04-13 功能: 1\将master库的系统存储过程批量生成文件(系统存储过程无法自动导出) 2\可以将所有类型的存储过程导出 3\可以标记上系统存储过程 调用: exec pr_procToSql '.','sa','H4ymH@$RTd','e:\tom\master\','master','1',‘' exec pr_procToSql '.','sa','a123456'seo网站关键词优化,'e:\sql\','agt_trad','','pr_','.sql' */ set nocount on declare @sp nvarchar(500),@s nvarchar(2000),@row int,@id int,@s_add varchar(2000) set @s=' use '+@database exec(@s) if object_id('tempdb..#t') is not null drop table tempdb..#t create table tempdb..#t(name varchar(2000) , id int IDENTITY(1,1) not null ) exec(' insert into tempdb..#t(name) select name --into TEMPDB..#T from '+@database+'..sysobjects where xtype=''p'' and name like '''+@proc_name+'%'' ') select @row=COUNT(*) from tempdb..#t print '共生成['+cast(@row as varchar)+']个存储过程' set @id=1 while @row>=@id begin select top 1 @sp=name from tempdb..#T where id=@id if OBJECT_ID('tempdb..test') is not null drop table tempdb..test --增加use master go set @s_add='echo use ['+@database+']>>'+@path+@sp+@savetype exec xp_cmdshell @s_add建设网站 set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].['+@sp+']'') AND type in (N''P'', N''PC''))>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo DROP PROCEDURE [dbo].['+@sp+']>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo SET ANSI_NULLS ON>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo SET QUOTED_IDENTIFIER ON>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add select @s=' select text into tempdb..test from '+@database+'..syscomments where id=OBJECT_ID('''+@database+'..'+@sp+''') ' exec(@s) --select * from tempdb..test select @s='exec xp_cmdshell '+'''bcp tempdb..test out '+@path+@sp+cast(@id as varchar)+@savetype+' -c -S '+@服务器名+' -U '+@用户名+' -P '+@密码+'''' exec(@s) --将前面加上use master 信息追加到 最前面 set @s_add='type '+@path+@sp+CAST(@id as varchar)+@savetype+'>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add if @sysproc='1' begin --在最后面加上标记为系统存储过程 set @s_add='echo exec sp_MS_marksystemobject ''['+@sp+']''>>'+@path+@sp+@savetype exec xp_cmdshell @s_add set @s_add='echo GO>>'+@path+@sp+@savetype exec xp_cmdshell @s_add print '标记第['+cast(@id as varchar)+']个为系统存储过程:'+@sp end set @s_add='del '+@path+@sp+CAST(@id as varc网站seo优化课程har)+@savetype exec xp_cmdshell @s_add print '生成第['+cast(@id as varchar)+']个存储过程:'+@sp delete from tempdb..#T where id=@id set @id=@id+1 end

关键词标签: 批量 存储过程

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-22 ,文章将mater库中的系统存储过程批量生成*.sql文件 通用主要讲述批量,存储过程,将mater库中的系统存储过程批量生网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_4472.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章