sqlcmd 实用工具

安装 sqlcmd

Windows 安装 sqlcmd

  • 若安装了 SQL Server 则默认自带 sqlcmd,以 SQL Server 2014 为例,sqlcmd 的位置为 C:\Program Files\MicrosoftSQLServer\Client SDK\ODBC\110\Tools\Binn

  • 若未安装 SQL Server,则可以拷贝如下任意 SQL Server 环境的3个文件(SQLCMD.EXE、SQLCMD.rll、batchparser.dll)到本机即可
wget -c http://iso.sqlfans.cn/sqlserver/sqlcmd/SQLCMD.EXE
wget -c http://iso.sqlfans.cn/sqlserver/sqlcmd/SQLCMD.rll
wget -c http://iso.sqlfans.cn/sqlserver/sqlcmd/batchparser.dll
move /y SQLCMD.EXE c:\windows\system32\
move /y SQLCMD.rll c:\windows\system32\
move /y batchparser.dll c:\windows\system32\
sqlcmd /?

Linux 安装 sqlcmd

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
yum install -y mssql-tools unixODBC-devel
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bash_profile
source ~/.bashrc

Ubuntu 安装 sqlcmd

  • Ubuntu 24.04 安装 mssql-tools18
#.1.导入微软 GPG 公钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

#.2.注册微软 Ubuntu 软件包仓库
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | tee /etc/apt/sources.list.d/mssql-release.list

#.3.更新本地软件包列表并安装sqlcmd
apt-get update
apt-get install mssql-tools18 unixodbc-dev

#.4.添加 sqlcmd 到 PATH 环境变量
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bash_profile
source ~/.bashrc

配置与使用

登录 sqlserver 实例

  • 场景1:默认情况下,通过 Windows身份验证 登录 SQL Server 实例,示例 本机服务器名 为 W-144162-DB
sqlcmd -S localhost
sqlcmd -S localhost -E
sqlcmd -S W-144162-DB -E
  • 场景2:通过 SQL Server身份验证 登录 SQL Server 实例,示例 dba_yuxiukai 密码为 Admin_147
sqlcmd -S . -U dba_yuxiukai -P Admin_147
sqlcmd -S 127.0.0.1 -U dba_yuxiukai -P Admin_147
sqlcmd -S localhost -U dba_yuxiukai -P Admin_147
  • 场景3:通过 \.\pipe\Microsoft##WID\tsql\query 登录 WSUS 服务的 SQL Server 实例
sqlcmd -S \\.\pipe\Microsoft##WID\tsql\query

sqlcmd 使用技巧

  • 利用 sqlcmd 登录实例,每一步之后加上 go 显式执行
C:\Users\Administrator>sqlcmd -S localhost
1> use master
2> go
1> select name from sys.databases where database_id > 4
2> go
name
------------------------------------------------
APIBot
APIData
DeviceInfo
bak
(4 行受影响)
1> exit
  • 通过 -q 语句 执行语句查询
sqlcmd -S localhost -d master -q "select top 3 name from sys.databases;"
  • 通过 -d 库名 -i 脚本名 导入数据
sqlcmd -S localhost -U dba_yuxiukai -P Admin_147 -d bak -i C:\sql_script.sql
  • 通过只读参数 -K readonly 登录AG侦听器
sqlcmd -S listener01 -U dba_yuxiukai -P Admin_147 -K readonly -d agdb01 -q "select @@servername"

遇到的错误

场景1:找不到 MSVCR100.dll

  • 场景:首次使用 sqlcmd 登录 sqlserver 报错“由于找不到 MSVCR100.dll,无法继续执行代码”

  • 解决:下载并安装 vc_redist_vs2010 即可
cd /d c:\
wget -c http://iso.sqlfans.cn/windows/vc++/vc_redist_vs2010.x64.exe
start vc_redist_vs2010.x64.exe

场景2:未发现数据源名称并且未指定默认驱动程序

  • 场景:在 wsus 服务器上,执行 sqlcmd -S \\.\pipe\Microsoft##WID\tsql\query 报错“Microsoft ODBC Driver 11 for SQL Server : 未发现数据源名称并且未指定默认驱动程序”
  • 解决:安装 ODBC Driver 11 for SQL Server,然后打开 ODBCAD32.EXE 确保“驱动程序”中包含“ODBC Driver 11 for SQL Server”这个odbc驱动程序
cd /d c:\
wget -c http://iso.sqlfans.cn/sqlserver/provider/odbc_driver_11_for_sqlserver_x64.msi
start odbc_driver_11_for_sqlserver_x64.msi

start C:\WINDOWS\SYSTEM32\ODBCAD32.EXE

Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-09-08 14:42:58

results matching ""

    No results matching ""