isql指令碼編寫建立資料庫(SQL Server2000)

來源:互聯網
上載者:User

@echo off
echo The following commands will set up the database for DocComposer.

set /p pDbName=Please Enter Database Name to be Created :  (註:不知道怎麼把這個參數傳入createDB.sql 和DocComposerDatabase.sql 指令碼中,這裡這個參數無效,指令碼中參數寫死了,望高手指點。)
set /p pHost=Enter the Host Name (Machine) for Database :
set /p pPass=Enter the password for "sa" user :

echo if the database does not exist, it will be created, otherwise, the database will be updated and all the data will be removed!!

echo enter Ctrl+C to stop, otherwise press any key to continue to set up the database.
pause

echo check or create the database
isql -S"%pHost%" -U sa -P"%pPass%" -i createDB.sql -o logs\test1.log
type Logs\test1.log >  Logs\setup.log

pause

echo create the tables...
isql -S "%pHost%" -U sa -P "%pPass%" -i DocComposerDatabase.sql -o Logs\test2.log
type Logs\test2.log >>  Logs\setup.log

pause

del logs\test1.log
del logs\test2.log

echo The database has been setup successfully.

 

××××××××××××××××××××××××××××××××××××××××××××××

附:SQLserver中的isql命令的參數詳解

你是用Windows 帳號登入到原生MS sql server,請用 isql -E
假設windows 帳號 ntuser1 要登入本機MS sql server,要這樣做。
1、以NT帳號ntuser1登陸到Windows2000 professional,不是 MS SQL Server。
2、isql -S Server -E
二、Sql Server 帳號這樣做:
1、將身分識別驗證設為SQL Server 和 Windows。
2、isql -U login_id -P password -S server isql [-?] | [-L] | [
{ {-U login_id [-P password]} | -E }
[-S server_name] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-x max_text_size] [-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 | 1}]
[-i input_file] [-o output_file] [-p] [-b] [-O] ]-?
顯示 isql 開關的文法摘要。
-L列出在本地配置的伺服器和在網路上廣播的伺服器的名稱。
-U login_id使用者登入 ID。登入 ID 區分大小寫。
-P password 是使用者指定的密碼。如果未使用
-P 選項,isql 將提示輸入密碼。如果在命令提示的末尾使用 -P 選項而不帶密碼,isql 使用預設密碼NULL)。
密碼區分大小寫。 ISQLPASSWORD 環境變數使您得以為當前會話設定預設密碼。因此,不需要通過寫入程式碼來在
批次檔中設定密碼。如果沒有 為 -P 選項指定密碼,isql 首先檢查 ISQLPASSWORD 變數。如果未設定
值,isql使用預設密碼 (NULL)。以下樣本 在命令提 示處設定LPASSWORD 變數,然後訪問 isql 工具 + 生產力:C:\>
SET ISQLPASSWORD=abracadabraC:\>isql -E使用信任連接而不請 求密碼。
-S server_name
  指定要串連到的 SQL Server 預設執行個體。isql 不支援串連到 SQL Server 2000 具名執行個體。如果未指定服務
器,isql 將串連 到本機電腦上的 SQL Server 預設執行個體。如果要在網路上從遠端電腦執行 isql,則需要
此選項。
-H wksta_name 是工作站名稱。
  工作站名稱儲存在 sysprocesses.hostname 中並由 sp_who 顯示。如果未指定,則採用當前電腦名稱。
-d db_name 啟動 isql 時發出一個 USE db_name 語句。
-l time_out 指定 isql 登入逾時之前的秒數。
  如果未指定 time_out 值,則命令無限期地運行。登入到 isql 的預設逾時為 8 秒。
-t time_out 指定命令逾時之前的秒數。
  如果未指定 time_out 值,則命令會無限期地運行;登入到 isql 的預設逾時為 8 秒。
-h headers 指定要在欄位標題之間列印的行數。
  預設為每一查詢結果集列印一次標題。使用 –1 指定不列印標題。如果使用 –1,則在參數和設定之間不能空

  (可以是 -h-1,不能是 -h –1)。
-s col_separator 指定資料行分隔符號字元,其預設為空白格。
  若要使用對作業系統有特殊含義的字元(例如 | ; & ),請將該字元用雙引號 (") 引起來。
-w column_width 允許使用者佈建螢幕輸出的寬度。預設為 80 個字元。當輸出行達到其最大螢幕寬度時,會拆分
為多個行。
-a packet_size 使您得以請求不同大小的資料包。
  packet_size 的有效值介於 512 和 65535 之間。Microsoft Windows NT 版中的 isql 預設值為 8192
;另 外,Microsoft MS-DOS 版中的 isql 預設值為 512,但在該版本中也可以請求更大的資料包。資料
包大小的增加 可以提高較大指令碼執行的效能,在這種執行中 GO 命令之間 SQL 陳述式的數量很重要。Microsoft
的測試表明 8192 是大容量 複製操作典型的最快設定。可以請求更大的資料包大小,但是如果請求不能得到批
准,則 isql 預設為 512。
-e 回顯輸入。
-x max_text_size 指定返迴文本資料的最大長度,以位元組為單位。
  長於 max_text_size 的文本值將被截斷。如果未指定 max_text_size,則文本資料在 4096 位元組處截斷。
-c cmd_end 指定命令終止符。
  預設情況下,通過單獨在一行中輸入 GO 來終止命令並將其發送到 SQL Server 2000。在重設命令終止時,不
要使用對操作 系統有特殊含義的 Transact-SQL 保留字或字元,無論其前面是否有反斜線。
-q "query" 啟動 isql 時執行查詢,但是在查詢完成時不退出 isql。
  (注意查詢語句不應包含 GO)。如果從批次檔中發出查詢,可使用 %variables。環境 %variables% 也可
用。例如:
  SET table = syso b j e c tsisql /q "Select * from %table%" 將查詢用雙引號引起來,將查詢中嵌入的任何內
容用單引號引 起來。
-Q "query" 執行查詢,在查詢完成時立即退出 isql。
  將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-n 從輸入行中刪除編號和提示符號 (>)。
-m error_level 自訂錯誤資訊的顯示。
  顯示指定的或更高嚴重層級錯誤的訊息數、狀態和錯誤層級。不顯示嚴重層級低於指定層級的錯誤的任何信
息。用 -1 指定 與訊息一起返回所有標題,即使是資訊類的訊息。如果使用 –1,則在參數和設定之間不能有
空格
  (可以是 -m-1,不能是 -m -1)。
-r {0 | 1} 將訊息輸出重新導向到螢幕 (stderr)。
  如果未指定參數,或指定參數為 0,那麼僅重新導向嚴重層級為 17 或更高的錯誤資訊。
  如果指定參數為 1,則將重新導向所有訊息輸出(包括 "print")。
-i input_file標識包含一批 SQL 陳述式或預存程序的檔案。小於 () 比較子可以用來代替 –o。-p列印效能統計。
-b 指定錯誤發生時 isql 退出並返回一個 DOS ERRORLEVEL 值。
  當 SQL Server 錯誤資訊的嚴重層級為 10 或更高時,返回給 DOS ERRORLEVEL變數的值為 1;否則,傳回值為
0。MS-DOS 批次檔可以測試 DOS ERRORLEVEL 的值並適當處理錯誤。
-O指定 isql 還原為早期版本的行為。下列功能停用: EOF 批處理控制台寬度自動調整寬資訊
  該選項還將 DOS ERRORLEVEL 的預設值設定為 –1。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.