免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
sqlcmd命令詳解

引用自微軟MSDN:http://msdn.microsoft.com/zh-cn/library/ms162773.aspx

一、輸入?yún)?shù)

sqlcmd  [{ { -U login_id [ -P password ] } | –E trusted connection }] [ -z new password ] [ -Z new password and exit] [ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ] [ -l login time_out ] [ -A dedicated admin connection ] [ -i input_file ] [ -o output_file ] [ -f < codepage > | i: < codepage > [ < , o: < codepage > ] ] [ -u unicode output ] [ -r [ 0 | 1 ] msgs to stderr ] [ -R use client regional settings ] [ -q 'cmdline query' ] [ -Q 'cmdline query' and exit ] [ -e echo input ] [ -t query time_out ] [ -I enable Quoted Identifiers ] [ -v var = 'value'...] [ -x disable variable substitution ] [ -h headers ][ -s col_separator ] [ -w column_width ] [ -W remove trailing spaces ] [ -k [ 1 | 2 ] remove[replace] control characters ] [ -y display_width ] [-Y display_width ] [ -b on error batch abort ] [ -V severitylevel ] [ -m error_level ] [ -a packet_size ][ -c cmd_end ] [ -L [ c ] list servers[clean output] ] [ -p [ 1 ] print statistics[colon format]] [ -X [ 1 ] ] disable commands, startup script, enviroment variables [and exit] [ -? show syntax summary ]

[注釋]:

不必按語法部分所示的順序使用選項。

在返回多個結(jié)果時,sqlcmd 在批處理中的每個結(jié)果集之間輸出一個空行。此外,如果沒有應(yīng)用于已執(zhí)行的語句,則“<x> 行受影響”消息不會出現(xiàn)。

若要交互使用 sqlcmd,請在命令提示符處使用本主題前面介紹的一個或多個選項鍵入 sqlcmd。有關(guān)詳細信息,請參閱使用 sqlcmd 實用工具

注意:
-L、-Q-Z-i 選項會導致 sqlcmd 在完成執(zhí)行后退出。
二、sqlcmd 命令

sqlcmd 中的 Transact-SQL 語句之外,還可使用以下命令:

 

GO [count]

:List

[:] RESET

:Error

[:] ED

:Out

[:] !!

:Perftrace

[:] QUIT

:Connect

[:] EXIT

:On Error

:r

:Help

:ServerList

:XML [ON | OFF]

:Setvar

:Listvar

使用 sqlcmd 命令時,請注意以下事項:

  • 除 GO 以外,所有 sqlcmd 命令必須以冒號 (:) 為前綴。

    重要提示:
    為了保持現(xiàn)有 osql 腳本的向后兼容性,有些命令會被視為不帶冒號。這由 [:] 指示。
  • sqlcmd 命令只有出現(xiàn)在一行的開頭時,才能夠被識別。

  • 所有 sqlcmd 命令都不區(qū)分大小寫。

  • 每個命令都必須位于單獨的行中。命令后面不能跟隨 Transact-SQL 語句或其他命令。

  • 命令將被立即執(zhí)行。它們與 Transact-SQL 語句不同,不會放在執(zhí)行緩沖區(qū)中。

  • 編輯命令


  • [:] ED

  • 啟動文本編輯器。該編輯器可以用來編輯當前的 Transact-SQL 批處理或上次執(zhí)行的批處理。若要編輯上次執(zhí)行的批處理,必須在上一批處理執(zhí)行完之后立即鍵入 ED 命令。

    文本編輯器由 SQLCMDEDITOR 環(huán)境變量定義。默認編輯器為“Edit”。若要更改編輯器,請設(shè)置 SQLCMDEDITOR 環(huán)境變量。例如,若要將編輯器設(shè)置為 Microsoft 記事本,請在命令提示符處鍵入:

    DE>SET SQLCMDEDITOR=notepadDE>

  • [:] RESET

  • 清除語句緩存。

  • :List

  • 輸出語句緩存的內(nèi)容。

  • 變量


  • :Setvar <var> [ 'value' ]

  • 定義 sqlcmd 腳本變量。腳本變量具有如下格式:DE>$(VARNAME)DE>。

    變量名稱不區(qū)分大小寫。

    可以通過下列方式設(shè)置腳本變量:

    • 隱式使用命令行選項。例如,-l 選項設(shè)置 SQLCMDLOGINTIMEOUT sqlcmd 變量。

    • 顯式使用 :Setvar 命令。

    • 在運行 sqlcmd 之前定義一個環(huán)境變量。

    注意:
    -X 選項可防止將環(huán)境變量傳遞給 sqlcmd。

    如果使用 :Setvar 定義的變量和某個環(huán)境變量同名,則使用 :Setvar 定義的變量優(yōu)先。

    變量名中不能包含空格字符。

    變量名不能與變量表達式(如 $(var))具有相同的形式。

    如果腳本變量的字符串值中含有空格,請用引號將該值引起來。如果未指定腳本變量的值,則將刪除該腳本變量。

  • :Listvar

  • 顯示當前設(shè)置的腳本變量列表。

    注意:
    只顯示由 sqlcmd 設(shè)置的腳本變量和使用 :Setvar 命令設(shè)置的腳本變量。
  • 輸出命令


  • :Error < filename >| STDERR|STDOUT

  • 將所有錯誤輸出重定向到 file name 指定的文件、stderrstdout。Error 命令可以在一個腳本中多次出現(xiàn)。默認情況下,錯誤輸出將發(fā)送到 stderr。

    • file name

    • 創(chuàng)建并打開一個要接收輸出的文件。若該文件已經(jīng)存在,則將其截斷為零字節(jié)。若該文件不可用(由于權(quán)限或其他原因),將不會切換輸出,也不會將輸出發(fā)送到上次指定的目標或默認目標。

    • STDERR

    • 將錯誤輸出切換至 stderr 流。如果已經(jīng)重定向,流的重定向目標將會收到錯誤輸出。

    • STDOUT

    • 將錯誤輸出切換至 stdout 流。如果已經(jīng)重定向,流的重定向目標將會收到錯誤輸出。

  • :Out < filename>| STDERR| STDOUT

  • 創(chuàng)建所有查詢結(jié)果并將它們重定向到 file name 指定的文件、stderrstdout。默認情況下,輸出將發(fā)送到 stdout。若該文件已經(jīng)存在,則將其截斷為零字節(jié)。Out 命令可以在一個腳本中多次出現(xiàn)。

  • :Perftrace < filename>| STDERR| STDOUT

  • 創(chuàng)建所有性能跟蹤信息并將它們重定向到 file name 指定的文件、stderrstdout。默認情況下,性能跟蹤輸出將發(fā)送到 stdout。若該文件已經(jīng)存在,則將其截斷為零字節(jié)。Perftrace 命令可以在一個腳本中多次出現(xiàn)。

  • 執(zhí)行控制命令


  • :On Error[ exit | ignore]

  • 設(shè)置在腳本或批處理執(zhí)行過程中發(fā)生錯誤時要執(zhí)行的操作。

    使用 exit 選項時,sqlcmd 退出,并顯示相應(yīng)的錯誤值。

    使用 ignore 選項時,sqlcmd 會忽略錯誤,并繼續(xù)執(zhí)行批處理或腳本。默認情況下,會輸出錯誤消息。

  • [:] QUIT

  • 導致 sqlcmd 退出。

  • [:] EXIT[ (statement) ]

  • 允許您將 SELECT 語句的結(jié)果用作 sqlcmd 的返回值。第一個結(jié)果行的第一列轉(zhuǎn)換為 4 字節(jié)的整數(shù)(長整型)。MS-DOS 將低字節(jié)傳遞給父進程或操作系統(tǒng)錯誤級別。Windows 200x 傳遞整個 4 字節(jié)整數(shù)。語法為:

    DE>:EXIT(query)DE>

    例如:

    DE>:EXIT(SELECT @@ROWCOUNT)DE>

    您還可以在批處理文件中包含 EXIT 參數(shù)。例如,在命令提示符處鍵入:

    DE>sqlcmd -Q 'EXIT(SELECT COUNT(*) FROM '%1')'DE>

    sqlcmd 實用工具將圓括號 ( ) 中的所有內(nèi)容發(fā)送給服務(wù)器。如果系統(tǒng)存儲過程選擇了一個集合并返回一個值,則僅返回選擇的內(nèi)容。如果圓括號中沒有任何內(nèi)容,則 EXIT ( ) 語句會執(zhí)行批處理中此語句前的所有內(nèi)容,然后退出,且不返回任何值。

    當指定了錯誤查詢時,sqlcmd 將退出,且不返回任何值。

    下面是 EXIT 格式的列表:

    • :EXIT

    不執(zhí)行批處理就立即退出,無返回值。

    • :EXIT( )

    執(zhí)行批處理后退出,不返回值。

    • :EXIT(query)

    執(zhí)行包括查詢的批處理,返回查詢的結(jié)果后退出。

    如果在 sqlcmd 腳本中使用 RAISERROR,并且出現(xiàn)狀態(tài) 127,則 sqlcmd 將退出,并將消息 ID 返回給客戶端。例如:

    DE>RAISERROR(50001, 10, 127)DE>

    該錯誤會導致 sqlcmd 腳本終止并將消息 ID 50001 返回給客戶端。

    SQL Server 保留了介于 -1 到 -99 之間的返回值;sqlcmd 定義了以下附加返回值:

     

    返回值說明

    -100

    選擇返回值前遇到錯誤。

    -101

    選擇返回值時找不到行。

    -102

    選擇返回值時發(fā)生轉(zhuǎn)換錯誤。

  • GO [count]

  • GO 在批處理和執(zhí)行任何緩存 Transact-SQL 語句結(jié)尾時會發(fā)出信號。在為 count 指定一個值時,緩存的語句會被作為單個批處理執(zhí)行 count 次。

  • 其他命令


  • :r < filename>

  • 將來自通過 <filename>所指定文件的其他 Transact-SQL 語句和 sqlcmd 命令分析到語句緩存中。

    如果文件包含的 Transact-SQL 語句后面沒有跟隨 GO,則必須在 :r 的后一行中輸入 GO。

    注意:
    系統(tǒng)會相對于 sqlcmd 在其中運行的啟動目錄讀取 <filename>。

    當遇到批處理終止符之后,將讀取并執(zhí)行該文件。可以發(fā)出多個 :r 命令。該文件可以包含任何 sqlcmd 命令。包括批處理終止符 GO。

    注意:
    每遇到一個 :r 命令,交互模式下顯示的行計數(shù)都會加一。:r 命令會出現(xiàn)在 list 命令的輸出中。
  • :Serverlist

  • 列出在本地配置的服務(wù)器和在網(wǎng)絡(luò)上廣播的服務(wù)器的名稱。

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

  • 連接到 SQL Server 的一個實例。同時關(guān)閉當前的連接。

    超時選項:

     

    0

    永遠等待

    n>0

    等待 n 秒鐘

    SQLCMDSERVER 腳本變量將反映當前的活動連接。

    如果未指定 timeout,則其默認值將為 SQLCMDLOGINTIMEOUT 變量的值。

    僅當指定了 user_name(作為選項或環(huán)境變量)時,才會提示用戶輸入密碼。如果已設(shè)置 SQLCMDUSER 或 SQLCMDPASSWORD 環(huán)境變量,則不會出現(xiàn)此提示。如果既未提供選項,又未提供環(huán)境變量,則使用 Windows 身份驗證模式登錄。例如,若要使用集成安全性連接到 SQL Server DE>myserverDE> 的一個實例(如 DE>instance1DE>),則會使用以下內(nèi)容:

    DE>:connect myserver\instance1DE>

    若要使用腳本變量連接到 DE>myserverDE> 的默認實例,您會使用以下內(nèi)容:

    DE>:setvar myusername testDE>

    DE>:setvar myservername myserverDE>

    DE>:connect $(myservername) $(myusername)DE>

  • [:] !!< command>

  • 執(zhí)行操作系統(tǒng)命令。若要執(zhí)行操作系統(tǒng)命令,請用兩個感嘆號 (!!) 開始一行,后面輸入操作系統(tǒng)命令。例如:

    DE>:!! DirDE>

    注意:
    該命令在運行 sqlcmd 的計算機上執(zhí)行。
  • :XML [ON | OFF]

  • 有關(guān)詳細信息,請參閱本主題后面的“XML 輸出格式”

  • :Help

  • 列出 sqlcmd 命令以及每個命令的簡短說明。

sqlcmd 文件名

可以使用 -i 選項或 :r 命令指定 sqlcmd 輸入文件。可以使用 -o 選項或 :Error、:Out:Perftrace 命令指定輸出文件。以下是使用這些文件的一些原則:

  • :Error、:Out:Perftrace 應(yīng)使用不同的 <filename>。如果使用了相同的 <filename>,這些命令的輸入可能會混雜在一起。

  • 如果從本地計算機的 sqlcmd 調(diào)用遠程服務(wù)器上的輸入文件,并且該文件包含驅(qū)動器文件路徑(如 :out c:\OutputFile.txt),將在本地計算機而不是遠程服務(wù)上創(chuàng)建輸出文件。

  • 有效的文件路徑包括:C:\<filename>、\\<服務(wù)器>\<共享$>\<filename> 和 'C:\Some Folder\<file name>'。如果路徑中包含空格,請使用引號。

  • 每個新的 sqlcmd 會話都將覆蓋現(xiàn)有的同名文件。

信息性消息

sqlcmd 將輸出由服務(wù)器發(fā)送的所有信息性消息。在以下示例中,執(zhí)行 Transact-SQL 語句后會輸出信息性消息。

在命令提示符下鍵入以下內(nèi)容:

DE>sqlcmdDE>

DE>At the sqlcmd prompt type:DE>

DE>USE AdventureWorks;DE>

DE>GODE>

按下 Enter 時,會輸出以下信息性消息:“已將數(shù)據(jù)庫上下文改為 'AdventureWorks'?!?/p>

Transact-SQL 查詢的輸出格式

sqlcmd 首先輸出列標題,其中包含在選擇列表中指定的列名。列名使用 SQLCMDCOLSEP 字符分隔。默認情況下,將使用空格。如果列名短于列寬,則使用空格填充輸出,直到下一列。

此行將跟隨一行分隔行,分隔行是一系列的破折號字符。以下輸出顯示了一個示例。

啟動 sqlcmd。在 sqlcmd 命令提示符下鍵入以下內(nèi)容:

DE>USE AdventureWorks;DE>

DE>SELECT TOP (2) ContactID, FirstName, LastName DE>

DE>FROM Person.Contact;DE>

DE>GO DE>

按下 Enter 時,會返回以下結(jié)果集。

DE>ContactID FirstName LastName DE>

DE>----------- ------------ ----------DE>

DE>1 Syed AbbasDE>

DE>2 Catherine AbelDE>

DE>(2 row(s) affected)DE>

雖然 DE>ContactIDDE> 列只有 4 個字符寬,但已將其擴展以適應(yīng)更長的列名。默認情況下,輸出會在 80 個字符處終止。可通過使用 -w 選項或設(shè)定 SQLCMDCOLWIDTH 腳本變量來進行更改。

XML 輸出格式

從 FOR XML 子句得到的 XML 輸出是在連續(xù)流中的未格式化的輸出。

若要得到 XML 輸出,請使用以下命令:DE>:XML ONDE>。

注意:
sqlcmd 將采用常見的格式返回錯誤消息。請注意,XML 文本流中的錯誤消息還將采用 XML 格式輸出。如果使用 DE>:XML ONDE>,則 sqlcmd 不顯示信息性消息。

若要關(guān)閉 XML 模式,請使用以下命令:DE>:XML OFFDE>。

發(fā)出 XML OFF 命令之前不應(yīng)顯示 GO 命令,因為 XML OFF 命令會將 sqlcmd 切換回面向行的輸出。

XML(流形式)數(shù)據(jù)和行集數(shù)據(jù)不能混合。如果在執(zhí)行輸出 XML 流的 Transact-SQL 語句之前未發(fā)出 XML ON 命令,則輸出將為亂碼。如果已發(fā)出 XML ON 指令,則無法執(zhí)行輸出常規(guī)行集的 Transact-SQL 語句。

注意:
:XML 命令不支持 SET STATISTICS XML 語句。
 sqlcmd 最佳方法

使用以下方法來幫助實現(xiàn)最高的安全性和效率。

  • 使用集成安全性。

  • 在自動化環(huán)境中使用 -X

  • 使用適當?shù)?NTFS 文件系統(tǒng)權(quán)限保護輸入文件和輸出文件。

  • 若要提高性能,請在一個 sqlcmd 會話中執(zhí)行盡可能多的操作,而不是在一系列會話中來執(zhí)行這些操作。

  • 將批處理或查詢執(zhí)行的超時值設(shè)置為大于您所預(yù)期的值。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Shell腳本編程初體驗
從 >nul 講起-3
SQL Server:sqlcmd參數(shù)命令全詳解
Vim入門基礎(chǔ)和Shell腳本
bash shell編程快速入門教程
Linux命令行基礎(chǔ),關(guān)于Bash需要知道的一些常識
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服