日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLServer知识:sqlcmd用法笔记

發(fā)布時間:2023/12/10 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLServer知识:sqlcmd用法笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天給大家介紹sqlcmd用法筆記,希望對大家能有所幫助!

1、介紹

sqlcmd是一個 Microsoft Win32 命令提示實用工具,可以通過該命令工具實現(xiàn)SQL語句、腳本的執(zhí)行,并且可以實現(xiàn)腳本任務(wù)的自動化。

2、使用場景

2.1 針對大文件腳本的執(zhí)行

腳本文件如果超過80兆,是不能夠直接在查詢編輯器執(zhí)行的,會直接溢出報錯,當(dāng)然如果你的腳本文件超過幾十兆,很有可能會造成SQLServer查詢編輯器卡死、無響應(yīng)。這個問題可以使用sqlcmd命令來解決。

2.2 確保系統(tǒng)部署的穩(wěn)定、準(zhǔn)確

我們在進(jìn)行系統(tǒng)部署的時候,由于業(yè)務(wù)邏輯的調(diào)整,經(jīng)常會有好幾十個腳本文件需要執(zhí)行,為了保證腳本執(zhí)行不出差錯,可以通過sqlcmd命令。來進(jìn)行腳本文件到線上環(huán)境的部署。這樣可以提高系統(tǒng)部署的質(zhì)量、準(zhǔn)確。

3、sqlcmd參數(shù)詳解

3.1 語法格式

[{ { -U login_id [ -P password ] } | –E trusted connection }]

[ -N encrypt connection ][ -C trust the server certificate ]

[ -z new password ] [ -Z new password and exit]

[ -S [protocol:]server[\instance_name][,port] ] [ -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]

3.2 參數(shù)說明

登錄相關(guān)選項

-A

使用專用管理員連接 (DAC) 登錄 SQL Server。此類型連接用于排除服務(wù)器故障。此連接僅適用于支持 DAC 的服務(wù)器計算機(jī)。如果 DAC 不可用,sqlcmd 會生成錯誤消息并退出。-A 選項和-G 選項不支持同時使用。

-C

該開關(guān)供客戶端用于將其配置為隱式表示信任服務(wù)器證書且無需驗證。此選項等價于 ADO.NET 選項 trustservercertificate = true。

-d db_name

啟動 sqlcmd 時會發(fā)出一個 USE db_name 語句用來指定要操作的數(shù)據(jù)庫名稱。此選項用來設(shè)置 sqlcmd 腳本變量 SQLCMDDBNAME。此參數(shù)指定初始數(shù)據(jù)庫。默認(rèn)為您的登錄名的默認(rèn)數(shù)據(jù)庫屬性。如果數(shù)據(jù)庫不存在,則生成錯誤消息且 sqlcmd退出。

-l login_timeout

指定在你嘗試連接到服務(wù)器時 sqlcmd 登錄 ODBC 驅(qū)動程序的超時時間(以秒為單位)。此選項設(shè)置 sqlcmd 腳本變量 SQLCMDLOGINTIMEOUT。登錄到 sqlcmd 的默認(rèn)超時時間為 8 秒。當(dāng)使用 -G 選項連接到 SQL 數(shù)據(jù)庫或 SQL 數(shù)據(jù)倉庫并使用 Azure Active Directory 進(jìn)行身份驗證時,建議超時值至少為 30 秒。登錄超時必須是介于 0 和 65534 之間的數(shù)字。如果提供的值不是數(shù)值或不在此范圍內(nèi), sqlcmd 將生成錯誤消息。當(dāng)值設(shè)置為 0 時,則允許無限制等待。

-E

使用信任連接而不是用戶名和密碼登錄 SQL Server服務(wù)。默認(rèn)情況下,如果未指定 -E , sqlcmd 將使用信任連接選項。

-E 選項會忽略可能的用戶名和密碼環(huán)境變量設(shè)置,例如 sqlcmdpassword。如果將 -E 選項與 -U 選項或 -P 選項一起使用,將生成錯誤消息。

-g

將列加密設(shè)置設(shè)為 Enabled。有關(guān)詳細(xì)信息,請參閱 Always Encrypted。僅支持存儲在 Windows 證書存儲中的主密鑰。-g 開關(guān)至少需要 sqlcmd 版本 13.1。若要確定你的版本,請執(zhí)行 sqlcmd -?。

-G

當(dāng)連接到 SQL 數(shù)據(jù)庫或 SQL 數(shù)據(jù)倉庫時,客戶端將使用此開關(guān)指定該用戶使用 Azure Active Directory 身份驗證來進(jìn)行身份驗證。此選項設(shè)置 sqlcmd 腳本變量 SQLCMDUSEAAD = true。-G 開關(guān)至少需要 sqlcmd 版本 13.1。若要確定你的版本,請執(zhí)行 sqlcmd -?。有關(guān)詳細(xì)信息,請參閱 使用 Azure Active Directory 身份驗證連接到 SQL 數(shù)據(jù)庫或 SQL 數(shù)據(jù)倉庫。-A 選項不支持使用-G 選項。

選項僅適用于 Azure SQL 數(shù)據(jù)庫 和 Azure 數(shù)據(jù)倉庫。

-H workstation_name

工作站的名稱。此選項設(shè)置 sqlcmd 腳本變量 SQLCMDWORKSTATION。工作站名稱列出在 sys.sysprocesses 目錄視圖的 hostname 列中,并且可使用存儲過程 sp_who返回。如果不指定此選項,則默認(rèn)為當(dāng)前計算機(jī)名稱。此名稱可用來標(biāo)識不同的 sqlcmd 會話。

-j 將原始錯誤消息輸出到界面上。

-K application_intent

連接到服務(wù)器時聲明應(yīng)用程序工作負(fù)荷類型。目前唯一支持的值是 ReadOnly。如果未指定 -K ,sqlcmd 實用工具將不支持連接到 AlwaysOn 可用性組中的次要副本。有關(guān)詳細(xì)信息,請參閱活動次要副本:可讀次要副本(AlwaysOn 可用性組)

-M multisubnet_failover

在連接到 SQL Server 可用性組或 SQL Server 故障轉(zhuǎn)移群集實例的可用性組偵聽程序時,應(yīng)始終指定 -M。-M 將為(當(dāng)前)活動服務(wù)器提供更快的檢測和連接。如果不指定 –M ,則 -M 處于關(guān)閉狀態(tài)。有關(guān)詳細(xì)信息 [!包括ssHADR,創(chuàng)建和配置的可用性組的(SQL Server),故障轉(zhuǎn)移群集和 Alwayson 可用性組 (SQL Server),并活動次要副本:可讀次要副本 (Alwayson 可用性組)。

-N

此開關(guān)供客戶端用于請求加密連接。

-P password

用戶指定的密碼。密碼是區(qū)分大小寫的。如果使用了 -U 選項而未使用 -P 選項,并且未設(shè)置 SQLCMDPASSWORD 環(huán)境變量,則 sqlcmd 會提示用戶輸入密碼。我們不建議使用 null 密碼,但您可以通過連續(xù)雙引號一對用于參數(shù)值指定 null 密碼:

-P ""

建議使用強(qiáng)密碼。

如果將 -P 選項與 -E 選項一起使用,將生成錯誤消息。

如果 -P 選項后有多個參數(shù),將生成錯誤消息并退出程序。

-S [協(xié)議:]server[\instance_name] [,* *端口]

指定要連接的 SQL Server 實例。它設(shè)置 sqlcmd 腳本變量 SQLCMDSERVER。

指定 server_name 可連接到該服務(wù)器計算機(jī)上的 SQL Server 默認(rèn)實例。指定要連接到該服務(wù)器計算機(jī)上 SQL Server 命名實例的 server_name [ \instance_name ]。如果不指定服務(wù)器,sqlcmd 將連接到本地計算機(jī)上 SQL Server 的默認(rèn)實例。從網(wǎng)絡(luò)上的遠(yuǎn)程計算機(jī)執(zhí)行 sqlcmd 時,此選項是必需的。

-U login_id

登錄名或包含的數(shù)據(jù)庫用戶名。對于包含的數(shù)據(jù)庫用戶,必須提供數(shù)據(jù)庫名稱選項 (-d)。

-z new_password

更改密碼:

sqlcmd -U someuser -P s0mep@ssword -z a_new_p@a$$w0rd

-Z new_password

更改密碼并退出:

sqlcmd -U someuser -P s0mep@ssword -Z a_new_p@a$$w0rd

4、sqlcmd 示例說明

4.1 登錄服務(wù)器

格式:sqlcmd -S 服務(wù)器名稱 -U 帳戶 -P 密碼

示例:sqlcmd -S "127.0.0.1" -U "sa" -P "sa"

4.2 直接執(zhí)行SQL腳本

格式:sqlcmd -S 服務(wù)器名稱 -U 帳戶 -P 密碼 -d 數(shù)據(jù)庫 -i SQL腳本

示例:sqlcmd -S "127.0.0.1" -U "sa" -P "sa" -d "MyDB" -i "D:\test.sql" --執(zhí)行腳本文件

sqlcmd -S "127.0.0.1" -U "sa" -P "sa" -d "MyDB" -i "select * from UserInfo" -- 直接執(zhí)行sql語句

IT技術(shù)分享社區(qū)

個人博客網(wǎng)站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠(yuǎn)程辦公:常用的遠(yuǎn)程協(xié)助軟件,你都知道嗎?51單片機(jī)程序下載、ISP及串口基礎(chǔ)知識硬件:斷路器、接觸器、繼電器基礎(chǔ)知識

總結(jié)

以上是生活随笔為你收集整理的SQLServer知识:sqlcmd用法笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。