一個命令,生成資料庫物件的指令碼

blueseasand發表於2007-08-07
作者的問題
寫成一個儲存過程.給一個引數就是資料庫名.然後生成這個庫的所有對像的指令碼.
 
declare   @cMd   varchar(1000)  
  set   @cmd   =   'master.dbo.xp_cmdshell   '   +    
  '''c:/"Microsoft   '   +  
  'SQL   Server"'   +  
  '/MSSQL/Upgrade/scptxfr.exe   '   +  
  '   /s   YourServerName   /p   YourSAPassword   /I   /d   YourDBName   /f   '   +  
  'c:/YourDBName.sql'''  
  exec   (@cmd)  
   
  命令列語法:  
  SCPTXFR   /s   <伺服器>   /d   <資料庫>   {[/I]   |   [/P   <密碼>]}  
  {[/F   <指令碼檔案目錄>]   |   [/f   <單個指令碼檔案>]}  
  /q   /r   /O   /T   /A   /E   /C   <CodePage>   /N   /X   /H   /G   /Y   /?  
   
  /s   —   指示要連線到的源伺服器。  
  /d   —   指示要為之編寫指令碼的源資料庫。  
  /I   —   使用整合安全性。  
  /P   —   sa   要用的密碼。請注意登入   ID   始終為   sa。  
  若/P不使用或標誌後面沒有密碼,  
  則將使用空密碼。不與   /I   相容。  
  /F   —   指令碼檔案應生成到的目錄。  
  這意味著為每個物件分類生成一個檔案。  
  /f   —   所有指令碼將儲存到的單個檔案。  
  不與   /F   相容。  
  /q   —   在所生成的指令碼中使用被引用的識別符號。  
  /r   —   為指令碼中的物件包括   drop   語句。  
  /O   —   生成   OEM   指令碼檔案。無法用於   /A   或   /T。  
  這是預設的行為。  
  /T   —   生成   UNICODE   指令碼檔案。無法用於   /A   或   /O。  
  /A   —   生成   ANSI   指令碼檔案。無法用於   /T   或   /O。  
  /?   —   命令列幫助。  
  /E   —   發生錯誤時停止指令碼編寫。  
  預設行為是記錄該錯誤而後繼續。  
  /C   —   指示替代伺服器   CodePage(內碼表)的   CodePage。  
  /N   —   生成   ANSI   PADDING。  
  /X   —   編寫   SP   和   XP   指令碼以分隔檔案。  
  /H   —   生成不帶首部的指令碼檔案。(預設:   帶首部)。  
  /G   —   使用指定的伺服器名稱作為所生成的輸出檔案的字首(  
  中的劃線)。  
  /Y   —   為“擴充套件屬性”生成指令碼(僅對   8.x   伺服器有效)。    
 

相關文章