百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

SQLServer基础:sqlcmd命令行工具用法笔记

liebian365 2024-10-28 17:17 4 浏览 0 评论

今天给大家分享sqlcmd命令行工具用法,希望对大家能有所帮助!

1、介绍

sqlcmd是一个 Microsoft Win32 命令提示实用工具,可以通过该命令工具实现SQL语句、脚本的执行,并且可以实现脚本任务的自动化。

2、使用场景

2.1 针对大文件脚本的执行

脚本文件如果超过80兆,是不能够直接在查询编辑器执行的,会直接溢出报错,当然如果你的脚本文件超过几十兆,很有可能会造成SQLServer查询编辑器卡死、无响应。这个问题可以使用sqlcmd命令来解决。

2.2 确保系统部署的稳定、准确

我们在进行系统部署的时候,由于业务逻辑的调整,经常会有好几十个脚本文件需要执行,为了保证脚本执行不出差错,可以通过sqlcmd命令。来进行脚本文件到线上环境的部署。这样可以提高系统部署的质量、准确。

3、sqlcmd参数详解

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 参数说明

登录相关选项

-A

使用专用管理员连接 (DAC) 登录 SQL Server。 此类型连接用于排除服务器故障。 此连接仅适用于支持 DAC 的服务器计算机。 如果 DAC 不可用,sqlcmd 会生成错误消息并退出。 -A 选项和-G 选项不支持同时使用。


-C

该开关供客户端用于将其配置为隐式表示信任服务器证书且无需验证。 此选项等价于 ADO.NET 选项 trustservercertificate = true。


-d db_name

启动 sqlcmd 时会发出一个 USE db_name 语句用来指定要操作的数据库名称。此选项用来设置 sqlcmd 脚本变量 SQLCMDDBNAME。 此参数指定初始数据库。 默认为您的登录名的默认数据库属性。 如果数据库不存在,则生成错误消息且 sqlcmd退出。


-l login_timeout

指定在你尝试连接到服务器时 sqlcmd 登录 ODBC 驱动程序的超时时间(以秒为单位)。 此选项设置 sqlcmd 脚本变量 SQLCMDLOGINTIMEOUT。 登录到 sqlcmd 的默认超时时间为 8 秒。 当使用 -G 选项连接到 SQL 数据库或 SQL 数据仓库并使用 Azure Active Directory 进行身份验证时,建议超时值至少为 30 秒。 登录超时必须是介于 0 和 65534 之间的数字。 如果提供的值不是数值或不在此范围内, sqlcmd 将生成错误消息。 当值设置为 0 时,则允许无限制等待。


-E

使用信任连接而不是用户名和密码登录 SQL Server服务。 默认情况下,如果未指定 -E , sqlcmd 将使用信任连接选项。


-E 选项会忽略可能的用户名和密码环境变量设置,例如 sqlcmdpassword。 如果将 -E 选项与 -U 选项或 -P 选项一起使用,将生成错误消息。


-g

将列加密设置设为 Enabled。 有关详细信息,请参阅 Always Encrypted。 仅支持存储在 Windows 证书存储中的主密钥。 -g 开关至少需要 sqlcmd 版本 13.1。 若要确定你的版本,请执行 sqlcmd -?。


-G

当连接到 SQL 数据库或 SQL 数据仓库时,客户端将使用此开关指定该用户使用 Azure Active Directory 身份验证来进行身份验证。 此选项设置 sqlcmd 脚本变量 SQLCMDUSEAAD = true。 -G 开关至少需要 sqlcmd 版本 13.1。 若要确定你的版本,请执行 sqlcmd -?。 有关详细信息,请参阅 使用 Azure Active Directory 身份验证连接到 SQL 数据库或 SQL 数据仓库。 -A 选项不支持使用-G 选项。

选项仅适用于 Azure SQL 数据库 和 Azure 数据仓库。


-H workstation_name

工作站的名称。 此选项设置 sqlcmd 脚本变量 SQLCMDWORKSTATION。 工作站名称列出在 sys.sysprocesses 目录视图的 hostname 列中,并且可使用存储过程 sp_who返回。 如果不指定此选项,则默认为当前计算机名称。 此名称可用来标识不同的 sqlcmd 会话。


-j 将原始错误消息输出到界面上。


-K application_intent

连接到服务器时声明应用程序工作负荷类型。 目前唯一支持的只是 ReadOnly。 如果未指定 -K ,sqlcmd 实用工具将不支持连接到 AlwaysOn 可用性组中的次要副本。 有关详细信息,请参阅活动次要副本:可读次要副本(AlwaysOn 可用性组)


-M multisubnet_failover

在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 -M。-M 将为(当前)活动服务器提供更快的检测和连接。 如果不指定 –M ,则 -M 处于关闭状态。 有关详细信息 [!包括ssHADR,创建和配置的可用性组合(SQL Server),故障转移群集和 Alwayson 可用性组 (SQL Server),并活动次要副本: 可读次要副本 (Alwayson 可用性组)。


-N

此开关供客户端用于请求加密连接。


-P password

用户指定的密码。 密码是区分大小写的。 如果使用了 -U 选项而未使用 -P 选项,并且未设置 SQLCMDPASSWORD 环境变量,则 sqlcmd 会提示用户输入密码。 我们不建议使用 null 密码,但您可以通过连续双引号一对用于参数值指定 null 密码:


-P ""

建议使用强密码。

如果将 -P 选项与 -E 选项一起使用,将生成错误消息。

如果 -P 选项后有多个参数,将生成错误消息并退出程序。

-S [协议:]server[\instance_name] [,* *端口]

指定要连接的 SQL Server 实例。 它设置 sqlcmd 脚本变量 SQLCMDSERVER。

指定 server_name 可连接到该服务器计算机上的 SQL Server 默认实例。 指定要连接到该服务器计算机上 SQL Server 命名实例的 server_name [ \instance_name ]。 如果不指定服务器,sqlcmd 将连接到本地计算机上 SQL Server 的默认实例。 从网络上的远程计算机执行 sqlcmd 时,此选项是必需的。

-U login_id

登录名或包含的数据库用户名。 对于包含的数据库用户,必须提供数据库名称选项 (-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 登录服务器

格式:sqlcmd -S 服务器名称 -U 帐户 -P 密码

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

4.2 直接执行SQL脚本

格式: sqlcmd -S 服务器名称 -U 帐户 -P 密码 -d 数据库 -i SQL脚本

示例:sqlcmd -S "127.0.0.1" -U "sa" -P "sa" -d "MyDB" -i "D:\test.sql" --执行脚本文件

sqlcmd -S "127.0.0.1" -U "sa" -P "sa" -d "MyDB" -i "select * from UserInfo" -- 直接执行sql语句

相关推荐

快递查询教程,批量查询物流,一键管理快递

作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...

一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递

对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...

快递查询单号查询,怎么查物流到哪了

输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...

3分钟查询物流,教你一键批量查询全部物流信息

很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...

快递单号查询,一次性查询全部物流信息

现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...

快递查询工具,批量查询多个快递快递单号的物流状态、签收时间

最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...

快递查询软件,自动识别查询快递单号查询方法

当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...

教你怎样查询快递查询单号并保存物流信息

商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...

简单几步骤查询所有快递物流信息

在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...

物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号

最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...

连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息

快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...

快递查询教程,快递单号查询,筛选更新量为1的单号

最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...

掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析

在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...

从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息

在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...

物流单号查询,在哪里查询快递

如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...

取消回复欢迎 发表评论: