場景:
dba那邊給我匯出了所有的儲存、函式等等物件的建立指令碼,有上千個檔案.
現在需要將這些物件建立指令碼匯入到另外乙個庫,如何解決呢?
手動乙個個執行顯然不太現實.
於是手動寫了乙個批處理,將所有的檔案形成乙個.sql的指令碼,最後以@生成的.sql指令碼方式匯入到目標庫中.
os環境:windows xp
指令碼內容如下:
@echo off
if exist list.sql del list.sql /q
:input
clsset 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 /a-d /s "%input%"') do echo @@%%~fnxi>>list.sql
if not exist list.sql goto no_file
start list.sql
exit
:no_file
clsecho %cur_dir% 出現錯誤,未成功生成list.sql指令碼!
pause
使用:另存為.bat型別檔案後,雙擊執行.
輸入你指令碼的路徑:
如我的e盤cry資料夾下,有如下型別的檔案:
test.prc
123\test1.fnc(有子資料夾123)
test2.vw
@@e:\cry\test.prc
@@e:\cry\123\test1.fnc
@@e:\cry\test2.vw
開啟sqlplus,以指定使用者登入資料庫,然後執行:(我的指令碼檔案生成在d盤)
@d:\list.sql
這樣所有的物件就會自動在指定使用者下生成.
注意:這樣生成的物件很多都是無效的,因為沒有按順序生成,所以建議在自動執行完後,再編譯一下所有無效的物件.
批量執行SQL指令碼
1.先要 xp cmdshell 這個東東給開啟,開啟方法如下 sp configure show advanced options 1reconfigure gosp configure xp cmdshell 1reconfigure go測試就這樣exec master.dbo.xp cmds...
通過Excel生成批量SQL語句,處理大量資料
我們經常會遇到這樣的要求 使用者給發過來一些資料,要我們直接給存放到資料庫裡面,有的是insert,有的是update等等,少量的資料我們可以採取最原始的辦法,也就是在sql裡面用insert into來實現,但是如果有幾十條幾百條甚至上千條資料的時候繼續寫單獨的sql語句的話那就慘了,其實有兩種簡...
通過Excel生成批量SQL語句,處理大量資料
我們經常會遇到這樣的要求 使用者給發過來一些資料,要我們直接給存放到資料庫裡面,有的是insert,有的是update等等,少量的資料我們可以採取最原始的辦法,也就是在sql裡面用insert into來實現,但是如果有幾十條幾百條甚至上千條資料的時候繼續寫單獨的sql語句的話那就慘了,其實有兩種簡...