亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

將mater庫(kù)中的系統(tǒng)存儲(chǔ)過(guò)程批量生成*.sql文件 通用且非常實(shí)用

 更新時(shí)間:2012年05月27日 22:15:22   作者:  
最近因?yàn)橄到y(tǒng)需要,需要將master庫(kù)的所有和業(yè)務(wù)相關(guān)的存儲(chǔ)過(guò)程批量生成 存儲(chǔ)過(guò)程名.sql 文件,默認(rèn)是不可以導(dǎo)出的
大家都知道系統(tǒng)存儲(chǔ)過(guò)程是無(wú)法用工具導(dǎo)出的(大家可以試試 >任務(wù)>生成SQL腳本)
因?yàn)橄到y(tǒng)存儲(chǔ)過(guò)程一般是不讓開(kāi)發(fā)人員修改的。

需要知識(shí):

1、xp_cmdshell命令的使用
2、sp_MS_marksystemobject 標(biāo)記系統(tǒng)存儲(chǔ)過(guò)程的方法
3、dos 命令,如 type,>> 等
4、bcp 命令的使用
復(fù)制代碼 代碼如下:

use master
go
if OBJECT_ID('pr_procToSql') is not null drop proc pr_procToSql
go
create proc pr_procToSql
(
@服務(wù)器名 varchar(100)
,@用戶(hù)名 varchar(100)
,@密碼 varchar(100)
,@path varchar(200)
,@database varchar(200)
,@sysproc int='0' --是否標(biāo)記為系統(tǒng)函數(shù) 1:是,0:否
,@proc_name varchar(100)='' --默認(rèn)是所有,可以模糊搜索
,@savetype varchar(200)='.sql' --默認(rèn)保存為sql腳本
)
as
/*
版本:v1
作者:達(dá)摩
日期:2012-04-13
功能:
1\將master庫(kù)的系統(tǒng)存儲(chǔ)過(guò)程批量生成文件(系統(tǒng)存儲(chǔ)過(guò)程無(wú)法自動(dòng)導(dǎo)出)
2\可以將所有類(lèi)型的存儲(chǔ)過(guò)程導(dǎo)出
3\可以標(biāo)記上系統(tǒng)存儲(chǔ)過(guò)程
調(diào)用:
exec pr_procToSql '.','sa','H4ymH@$RTd','e:\tom\master\','master','1',‘'
exec pr_procToSql '.','sa','a123456','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)+']個(gè)存儲(chǔ)過(guò)程'
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 '+@服務(wù)器名+' -U '+@用戶(hù)名+' -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
--在最后面加上標(biāo)記為系統(tǒng)存儲(chǔ)過(guò)程
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 '標(biāo)記第['+cast(@id as varchar)+']個(gè)為系統(tǒng)存儲(chǔ)過(guò)程:'+@sp
end
set @s_add='del '+@path+@sp+CAST(@id as varchar)+@savetype
exec xp_cmdshell @s_add
print '生成第['+cast(@id as varchar)+']個(gè)存儲(chǔ)過(guò)程:'+@sp
delete from tempdb..#T where id=@id
set @id=@id+1
end

此存儲(chǔ)過(guò)程可以完善的功能
1、生成視圖
2、生成函數(shù)
3、生成指定庫(kù)的表結(jié)構(gòu)
4、生成指定庫(kù)的約束,用于批量生成升級(jí)腳本
5、用于生成數(shù)據(jù)庫(kù)中升級(jí)的腳本
歡迎大家?guī)臀蚁胂?,還有別的辦法嗎?希望加QQ282329611交流。

生成結(jié)果如圖:

相關(guān)文章

  • SQL Server使用腳本實(shí)現(xiàn)自動(dòng)備份的思路詳解

    SQL Server使用腳本實(shí)現(xiàn)自動(dòng)備份的思路詳解

    這篇文章主要介紹了SQL Server使用腳本實(shí)現(xiàn)自動(dòng)備份的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • mysql基礎(chǔ)知識(shí)掃盲

    mysql基礎(chǔ)知識(shí)掃盲

    本文主要介紹關(guān)于mysql的一些非?;A(chǔ)的知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • SqlServer中查看當(dāng)前Open的Cursor方法

    SqlServer中查看當(dāng)前Open的Cursor方法

    這篇文章主要介紹了SqlServer中查看當(dāng)前Open的Cursor方法,本文為了解決A cursor with thename ' ' already exists總結(jié)的幾個(gè)方法,需要的朋友可以參考下
    2015-07-07
  • 升級(jí)SQL Server 2014的四個(gè)要點(diǎn)要注意

    升級(jí)SQL Server 2014的四個(gè)要點(diǎn)要注意

    升級(jí)一個(gè)關(guān)鍵業(yè)務(wù)SQL Server實(shí)例并不容易,它要求有周全的計(jì)劃。計(jì)劃不全會(huì)增加遇到升級(jí)問(wèn)題的可能性,從而影響或延遲SQL Server 2014的升級(jí)。在規(guī)劃SQLServer 2014升級(jí)時(shí),有一些注意事項(xiàng)有助于避免遇到升級(jí)問(wèn)題,需要的朋友可以參考下
    2015-08-08
  • SQL Server 2016 CTP2.2安裝配置方法圖文教程

    SQL Server 2016 CTP2.2安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了SQL Server 2016 CTP2.2安裝配置方法圖文教程 ,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 談?wù)凾empdb對(duì)SQL Server性能優(yōu)化有何影響

    談?wù)凾empdb對(duì)SQL Server性能優(yōu)化有何影響

    由于tempdb是SQLServer的系統(tǒng)數(shù)據(jù)庫(kù)一直都是SQLServer的重要組成部分,用來(lái)存儲(chǔ)臨時(shí)對(duì)象,在數(shù)據(jù)庫(kù)中起到舉足輕重的作用,此篇文章給大家?guī)?lái)tempdb對(duì)sql server性能優(yōu)化的影響,感興趣的朋友參考下
    2015-11-11
  • 淺析SQL Server中的執(zhí)行計(jì)劃緩存(下)

    淺析SQL Server中的執(zhí)行計(jì)劃緩存(下)

    這篇文章主要介紹了淺析SQL Server中的執(zhí)行計(jì)劃緩存(下)的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • SQLServer中臨時(shí)表與表變量的區(qū)別分析

    SQLServer中臨時(shí)表與表變量的區(qū)別分析

    我們?cè)跀?shù)據(jù)庫(kù)中使用表的時(shí)候,經(jīng)常會(huì)遇到兩種使用表的方法,分別就是使用臨時(shí)表及表變量。
    2010-06-06
  • sqlserver中存儲(chǔ)過(guò)程的遞歸調(diào)用示例

    sqlserver中存儲(chǔ)過(guò)程的遞歸調(diào)用示例

    這篇文章主要介紹了sqlserver中存儲(chǔ)過(guò)程的遞歸調(diào)用示例,本文直接給出示例代碼,需要的朋友可以參考下
    2015-07-07
  • 圖書(shū)管理系統(tǒng)的sqlserver數(shù)據(jù)庫(kù)設(shè)計(jì)示例

    圖書(shū)管理系統(tǒng)的sqlserver數(shù)據(jù)庫(kù)設(shè)計(jì)示例

    這篇文章主要介紹了圖書(shū)管理系統(tǒng)的sqlserver數(shù)據(jù)庫(kù)設(shè)計(jì)示例,文中通過(guò)E_R圖、數(shù)據(jù)字典、數(shù)據(jù)庫(kù)腳本代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論