• Increase font size
  • Default font size
  • Decrease font size
的T - SQL 所有數據庫腳本和對象

所有數據庫腳本和對象

電子郵件 打印
(0票)

file_sharing_up_128 繼上一篇文章對您的數據庫對象的腳本,我創建了一個存儲過程,自動為您的數據庫腳本和腳本寫入到一個文件夾。 此腳本創建在SQL Server 2005。 這是有用的,因為現在所有的對象如表,存儲過程,視圖和函數在一個腳本。

  [ dbo ] . [ sp_GenDBscript ] 的CREATE PROCEDURE [dbo的]。[Sp_GenDBscript]
  ( 150 ) -- Bijv: 'D:\SQLDATA\'備份@路徑VARCHAR(150) -例子:的D:\ SQLDATA \'
 正如 

 / * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ 
  最高人民法院目的:生成腳本的數據庫,所有對象 
  創建人:羅納德Kraijesteijn 
  建立時間:2010年3月 
  更新:X 
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ 
  需要: 
  http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=56e5b1c5-bf17-42e0-a410-371a838e570a&displayLang=en 

  例子 
  Exec的sp_GenDBscript的D:\ SQLDATA' 

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 〜〜〜* /

  動工
  設定SET NOCOUNT ON

  @ PATH AS VARCHAR ( 150 ) 的DECLARE @ 路徑為varchar(150)
  @CMD AS VARCHAR ( 150 ) 隨著的DECLARE @加利福尼亞VARCHAR(150)
  @Param AS VARCHAR ( 150 ) 隨著的DECLARE @ Params VARCHAR(150)
  @ SQL AS VARCHAR ( 256 ) 的DECLARE @ 的SQL為varchar(256)
  @ DATE AS VARCHAR ( 10 ) 的DECLARE @ 日期為varchar(10)
  @TextFile AS VARCHAR ( 150 ) 的DECLARE @文本文件varchar(150)
  @MkdirStr AS VARCHAR ( 150 ) 的DECLARE @ MkdirStr varchar(150)
  @ TIME AS VARCHAR ( 150 ) 的DECLARE @ 時間為varchar(150)
  @ DATABASE AS VARCHAR ( 150 ) 的DECLARE @ 數據庫為varchar(150)
  @RC AS INT 作為區局的DECLARE @ 詮釋 

  @ TIME = REPLACE ( CONVERT ( VARCHAR , GETDATE ( ) , 114 ) , ':' , '' ) 設置 @ 時間 = 替換 (轉換(VARCHAR,不同 getDate(),114),':','')
  @ DATE = CONVERT ( VARCHAR , GETDATE ( ) , 112 ) 設置 @ 日期 = 加工(VARCHAR,不同 getDate(),112)
  @ PATH = '"C: \P rogram Files \M icrosoft SQL Server \9 0 \T ools \P ublishing \S qlPubWiz.exe"' @ 設置路徑 =的C: 的\ p rogram Files文件\ M icrosoft SQL Server的\ 9 0 \ Ŧ ools \ ublishing P \ S的 qlPubWiz.exe

 -下載清單數據庫
  CUR_DB CURSOR DECLARE CURSOR的 CUR_DB
  [ name ] 對於SELECT [名字]
  sys. databases  sys。 數據庫
  [ name ] NOT IN ( 'master' , 'tempdb' , 'model' , 'msdb' , 其中,[ 名稱]不中('師父','tempdb中','模式','msdb資料',
  , 'ReportServerTempDB' ) 報表服務器,ReportServerTempDB')

 -創建數據庫腳本每
  CUR_DB 開放 CUR_DB
  CUR_DB INTO @ DATABASE 數據庫的FETCH改成 @ CUR_DB
  @@FETCH_STATUS = 0 在WHILE @ @的fetch_status = 0
  動工 
  @MkdirStr = 'mkdir ' + @BackupPath + ' \' + @Database + ' \script ' 設置 @ MkdirStr ='mkdir'+ @備份路徑+'\'+ @數據庫+'\腳本  
   _ ' + @Date + ' _ ' + @Time + ' . SQL ' 文本文件的SET @ = @數據庫+'_'+ @日期+'_'+ @時間+'。 SQL 
   script ' + @BackupPath + ' \ ' + @Database + ' \script\ ' + @TextFile 設置@帕拉姆庫馬拉='腳本'+ @備份路徑+'\'+ @數據庫+'\腳本\+ @文本文件 
   -schemaonly -d ' + @Database +模式只有- d'+ @數據庫  
   集的SQL = @ @ @帕拉姆庫馬拉路徑+  

   -檢查目錄存在,如果沒有,創建目錄  
   Exec的鋼筋混凝土= @ @ master.dbo.xp_cmdshell MkdirStr,NO_OUTPUT 

   -製作備份 
   ## START scripting DATABASE : %s ## ', 10, 0, @Database ) WITH NOWAIT ; 的RAISERROR('## 啟動數據庫的腳本:%s的##',10,0,@數據庫)與NOWAIT這樣的;  
   Exec的鋼筋混凝土主.. xp_cmdshell的@ = @ SQL中,no_output 
   如果@鋼筋混凝土<> 0 
   An Error occured WHILE scripting DATABASE : ' + @Database 打印'時 發生錯誤的腳本數據庫:'+ @數據庫 

   ## Done scripting DATABASE : %s ## ', 10, 0, @Database ) WITH NOWAIT ; 的RAISERROR('##完成腳本數據庫:%s的 ##',10,0,@數據庫)與NOWAIT這樣的; 
   數據庫的FETCH CUR_DB改成@ 
    
   關閉CUR_DB 
   的LOCATE CUR_DB牌  

    







版權2008。 保留所有權利。

引用(0)

引用地址為這個職位

評論(0)

RSS飼料評論

發表評論

大膽 斜體 線下 罷工 網址 圖片 引用 smile wink laugh grin angry sad shocked cool tongue kiss cry
| groter |
安全形象
寫顯示的字符

忙