熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

sql server自動生成批量執行SQL腳本的批處理

2013-11-15 14:45:30  來源: SQL Server 

  場景:

  DBA那邊給我導出了所有的存儲函數等等對象的創建腳本有上千個文件

  現在需要將這些對象創建腳本導入到另外一個庫如何解決呢?

  手動一個個執行顯然不太現實

  於是手動寫了一個批處理將所有的文件形成一個SQL的腳本最後以@生成的SQL腳本方式導入到目標庫中

  OS環境:WINDOWS xp

  腳本內容如下:

  @echo off if exist listsql del listsql /q :input cls set input=: set /p input= 請輸入要進行判斷的路徑 set "input=%input:"=%" :: 上面這句為判斷%input%中是否存在引號有則剔除 if "%input%"==":" goto input if not exist "%input%" goto input for /f "delims=" %%i in (dir /b /ad /s "%input%") do echo @@%%~fnxi>>listsql if not exist listsql goto no_file start listsql exit :no_file cls echo %cur_dir% 出現錯誤未成功生成listsql腳本! pause

  使用:

  另存為BAT類型文件後雙擊執行

  輸入你腳本的路徑:

  如我的E盤CRY文件夾下有如下類型的文件:

  TESTPRC

  

  TESTFNC(有子文件夾)

  

  TESTVW

  

  執行該批處理後最後生成的listsql腳本文件內容如下(執行完批處理後會用默認的編輯器自動打開該文件):

  @@E:cryTESTPRC

  

  @@E:cryTESTFNC

  

  @@E:cryTESTVW

  

  打開SQLPLUS以指定用戶登錄數據庫然後執行: (我的腳本文件生成在d盤)

  @D:listsql

  這樣所有的對象就會自動在指定用戶下生成

  

  注意:這樣生成的對象很多都是無效的因為沒有按順序生成所以建議在自動執行完後再編譯一下所有無效的對象


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22286.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.