1. 程式人生 > >SqlServer低版本資料庫附加Sql高版本資料庫或備份檔案

SqlServer低版本資料庫附加Sql高版本資料庫或備份檔案

       SqlServer低版本資料庫不能直接還原或附加Sql高版本資料庫或備份檔案,我們常用DTS互導的方式,如果不同版本資料庫不可訪問,可以使用高版本資料庫的DTS匯出整個庫的相應低版本建庫指令碼與資料,然後放在低版本資料庫中去執行,常見如:我們庫資料庫一般是SqlServer2008+,有的客戶使用的是2005版本的資料庫,這時我們就提供了2005版本的建庫指令碼供使用者自己在機器上執行,但由於檔案過大(可以分成幾個檔案)會導致執行過程中記憶體不夠的情形,對於此類種種情況我們可以使用命令列方式匯入建表指令碼與資料,Sql2005我們可以使用可以

使用osql 語句來處理。

       osql語法為:

   osql -S 伺服器 -U 使用者名稱 -P 密碼 -i SQL路徑

      osql 是一個 Microsoft Windows 32 命令提示符工具,您可以使用它執行 Transact-SQL 語句和指令碼檔案!

      如何使用 Osql?

      在開始->執行 中鍵入cmd,使用 "OSQL -?"命令,就可以顯示osql命令列的幫助。 注意:osql 工具的選項列表是區分大小的,在使用時注意。

**1、使用osql執行單個 Transact-SQL 語句 **

在鍵入cmd與下面這一個類似的命令:

osql -E -q "Transact-SQL statement"

例如: sql -E -q "use myDB select * from myTable"

其中 -E 表示使用 Microsoft Windows NT 身份驗證。

也可以使用sa賬戶,具體可以看看上面的命令!

而-q 表示執行 Transact-SQL 語句,但是在查詢結束時不退出 osql。

如要執行 Transact-SQL 語句並退出 osql,請使用 -Q 引數來代替 -q。

**2、使用osql執行一個大指令碼檔案 **

將該工具指向一個指令碼檔案,步驟:

a.建立一個包含一批 Transact-SQL 語句的指令碼檔案(如 myfile.sql)。

b.開啟命令提示符,鍵入與下面類似的一個命令,然後按 ENTER 鍵:

osql -E -i input_file

其中input_file 是指令碼檔案及其完整路徑。例如,如果指令碼檔案 myfile.sql 在 C:\users資料夾中,

請將引數 myfile 替換為 C:\users\myfile.sql。

該指令碼檔案的執行結果將出現在控制檯視窗中。

如果您想將執行結果定向到一個檔案,請向上述命令中新增 -o output_file 引數。例如:

osql -E -i input_file -o output_file

其中output_file 是輸出檔案及其完整路徑。

如果你覺得太麻煩了,可以使用批處理,將常用的一些命令寫在bat檔案中,需要的時候替換一些引數,點選檔案執行即可,此時把需要執行的sql檔案放在新建的一個批處理檔案中,副檔名為.bat後執行即可。

如果是sql2008資料庫,則可以使用sqlcmd 來執行大檔案sql指令碼。sqlcmd命令語法 為: sqlcmd -S . -U sa -P 123 -d test -i data.sql

引數說明:-S 伺服器地址 -U 使用者名稱 -P 密碼 -d 資料庫名稱 -i 指令碼檔案路徑

       本地伺服器地址可以寫 . 比較輕鬆,也可寫(local)或者IP地址 要使用sqlcmd命令,需要在cmd命令列模式,把路徑切換到:C:\Program Files\Microsoft SQL Server\100\Tools\Binn後執行。具體路徑視自己sql安裝目錄。

以上只是一些參考,具體的方式會很多。