迴歸命令列 SQLServer的命令列工具們(2) – sqlcmd.exe(中篇)

來源:互聯網
上載者:User

在瞭解完sqlcmd 參數之後,我們載來看看sqlcmd的命令,使用:Help來看看一共有那些命令

1> :Help

:!! [<命令>]

 - 在 Windows 命令 shell 中執行命令。

:connect server[\instance] [-l 逾時值] [-U 使用者 [-P 密

 - 串連到 SQL Server 執行個體。

:ed

 - 編輯當前語句緩衝或上次執行的語句緩衝。

:error <目標>

 - 將錯誤輸出重新導向到檔案、stderr 或 stdout。

:exit

 - 立即退出 sqlcmd。

:exit()

 - 執行語句緩衝;不傳回值,直接退出。

:exit(<查詢>)

 - 執行指定的查詢;返回數字結果。

go [<n>]

 - 執行語句緩衝(n 次)。

:help

 - 顯示此命令列表。

:list

 - 輸出語句緩衝的內容。

:listvar

 - 列出設定的 sqlcmd 指令碼變數。

:on error [exit|ignore]

 - 在執行批處理或 sqlcmd 命令時應對錯誤的措施。

:out <檔案名稱>|stderr|stdout

 - 將查詢輸出重新導向到檔案、stderr 或 stdout。

:perftrace <檔案名稱>|stderr|stdout

 - 將計時輸出重新導向到檔案、stderr 或 stdout。

:quit

 - 立即退出 sqlcmd。

:r <檔案名稱>

 - 將檔案內容追加到語句緩衝之後。

:reset

 - 放棄語句緩衝。

:serverlist

 - 列出本地 SQL Server 和網路中的 SQL Server。

:setvar {variable}

 - 刪除 sqlcmd 指令碼變數。

:setvar <變數> <值>

 - 設定 sqlcmd 指令碼變數。

Sqlcmd的命令都是以”:”符號開始的(除了GO,打:GO系統會認為是向緩衝區添加了一段字元:GO),雖然有些命令可以省略”:”,但是為了安全與方便記憶,實用的時候推薦大家還是打上”:”把,辛苦多打下一個”:”不會引發任何血案的,我保證!^_^

 

下面是每個命令的解釋:

[:] !!< command>

    執行作業系統命令,在指令碼中常見,極大的增強了互動效能。

    當然,偶爾還為忘記了(或是偷懶想copy)IO檔案名稱的程式員們提供DIR命令。

下面是例子

3> !!dir

磁碟機 C 中的卷沒有標籤。

卷的序號是 044A-C8D9 

C:\Documents and Settings\chenxie.IFLYTEK 的目錄

2006-12-29 08:46    <DIR>          .

2006-12-29 08:46    <DIR>          ..

2006-12-29 08:46                 0 awstats.myvirtualhostname

2006-12-29 08:46                 0 awstats.myvirtualhostname.html

2006-12-30 16:23    <DIR>          Favorites

2006-12-02 11:49               664 intlname.ols

2006-12-31 09:10    <DIR>          My Documents

2006-12-11 14:37    <DIR>          VSWebCache

2006-10-27 15:14    <DIR>          WINDOWS

2006-12-04 17:39    <DIR>          「開始」菜單

2006-12-30 14:09    <DIR>          案頭

             3 個檔案            664 位元組

             8 個目錄 7,063,961,600 可用位元組 

:Connect server_name[\instance_name] [-l timeout] [-U user_name [-P password]]

-關閉當前的串連,串連到另一個的 SQL Server執行個體。不指定timeout將使用SQLCMDLOGINTIMEOUT變數值。

:ed

 - 編輯當前語句緩衝或上次執行的語句緩衝。

   召喚編輯器來編輯緩衝中的語句,預設為Edit.com。可以通過修改SQLCMDEDITOR 環境變數來改變編輯器(比如 SET SQLCMDEDITOR=notepad)。

另外提一句:不知道什麼原因,我使用Edit.com之後回到sqlcmd,所有的中文都無法正確顯示了具體原因也找不到,鬱悶,期待高手。

:Error <filename>|STDERR|STDOUT

 - 將錯誤輸出重新導向到檔案.

    若該檔案已經存在,則將其截斷為零位元組。若該檔案不可訪問(由於許可權或其他原因),將不會切換輸出,也不會將輸出發送到上次指定的目標或預設目標。預設情況下,錯誤輸出將發送到 stderr流。

: EXIT[ (statement) ]

 - 立即退出 sqlcmd。:EXIT用法很有講究,實用的時候請注意

:EXIT
不執行批處理就立即退出,無傳回值。

:EXIT( )
執行批處理後退出,無傳回值。

:EXIT(query)
執行包括查詢的批處理,返回查詢的結果後退出。

   Statement的值是將第一個結果行的第一列轉換為 4 位元組的整數(長整型)。SQL Server 保留了介於 -1 到 -99 之間的傳回值;sqlcmd 定義了以下附加傳回值-100:選擇傳回值前遇到錯誤。-101:選擇傳回值時找不到行。-102:選擇傳回值時發生轉換錯誤。

在編寫自動指令碼的時候:EXIT很實用。

go [<n>]

 - 執行語句緩衝(n 次)。樣本如下:

1> select count(*) from TestTab;
2> go 3
-----------
 410
(1 行受影響)
-----------
410
(1 行受影響)
-----------
 410
(1 行受影響)
1>

:list

 - 輸出語句緩衝的內容。Go過之後,語句即被清掉,:list顯示為空白。樣本如下

1> select count(*) from TestTab;
2> :list
select count(*) from LCS_BIZOBJECT;

2> go
-----------
410
 (1 行受影響)
1> :list
1>

:listvar

- 列出設定的 sqlcmd 指令碼變數,方便使用sqlcmd。

:on error [exit|ignore]

- 在執行批處理或 sqlcmd 命令時應對錯誤的措施。
設定在指令碼或批處理執行過程中發生錯誤時要執行的操作。
預設情況下,會列印錯誤訊息。

Exit: sqlcmd 退出,並顯示相應的錯誤值。
Ignore: sqlcmd 會忽略錯誤,並繼續執行批處理或指令碼。

:out < filename >|stderr|stdout

 -將所有查詢結果重新導向到 filename 指定的檔案、stderr 或 stdout。
預設情況下,輸出將發送到 stdout。

:perftrace < filename >|stderr|stdout

 - 將計時輸出重新導向到檔案、stderr 或 stdout。
預設情況下,輸出將發送到 stdout。

:quit

 - 立即退出 sqlcmd。

:r < filename >

 - 將檔案內容追加到語句緩衝之後。

:reset

 - 放棄語句緩衝。

:serverlist

 - 列出網路中的 SQL Server。

:setvar {variable}

 - 刪除 sqlcmd 指令碼變數。

:setvar < variable > <value>

 - 設定 sqlcmd 指令碼變數。

   如果使用 :Setvar 定義的變數和某個環境變數同名,則使用 :Setvar 定義的變數優先。變數名中不能包含空白字元。如果指令碼變數的字串值中含有空格,請用引號將該值引起來。否則將被華麗的無視。
如果未指定指令碼變數的值,則將刪除該指令碼變數。
變數名不能與Variant 運算式(例如 $(var))具有相同的形式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.