SQLServer知识:sqlcmd用法笔记

今天给大家介绍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" -q "select * from UserInfo" -- 直接执行sql语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLServer书写规范梳理

今天给大家分享SQLServer书写规范笔记&#xff0c;希望对大家能有所帮助!1、在名称中仅使用字母、数字和下划线要在名称中仅使用字母、数字和下划线&#xff0c;主要是因为这些字符可以被方便的移植到编程语言中。在应用程序的数据库和编程语言中能够使用相同的属性字段名称&am…

visio调整形状位置_VISIO绘图技巧—三相桥式全控整流电路绘制

前些天有网友留言询问如何画三相桥式全控整流电路&#xff0c;一直没时间回复。今天得闲在家&#xff0c;给大家介绍一下如何来画。上图是一个三相桥式全控整流电路原理图&#xff0c;大部分图形元件在VISIO自带的图形库中都能找到&#xff0c;下面来看看如何找出我们需要的绘图…

电脑术语科普:什么是“显卡交火”?

有时候看到别人在讨论显卡交火的话题&#xff0c;相信大家对显卡交火这个术语了解得也比较少&#xff0c;那么它是什么意思呢? 显卡交火简单的说就是&#xff1a;让两块或者多块显卡在一台机子上协同工作&#xff0c;相比于使用一张显卡图形性能有所提升。 目前主流显卡交火有…

Mac查看本机ip地址

Mac查看本机ip地址 ifconfig | grep "inet" 箭头处为ip地址

SQL Azure与SQL Server两者的对比介绍,看完你就懂了!

今天给大家SQL Azure与SQL Server两者的对比介绍&#xff0c;看完你就懂了&#xff01;1、SQL Server介绍SQL Server数据库服务方式是安装在客户提供的服务器内。客户负责硬件、、软件安装、安全性、数据库备份、灾难恢复等相关的运维工作。需要较高的人为运维成本。2、SQL Azu…

如何用HTML语言设计进度条,html5代码如何实现进度条功能?(示例)

本篇文章主要介绍html5代码如何实现进度条功能&#xff0c;希望对大家有所帮助。html5代码实现进度条功能具体代码示例如下&#xff1a;/*实现进度条的功能*/下载进度&#xff1a;/*js代码*/var pgdocument.getElementById(pg);setInterval(function(e){if(pg.value!100) pg.va…

Flink是什么

一&#xff1a;Flink是什么

SQL Server数据库架构与对象相关知识笔记

1、数据库架构简介数据库架构是从SQL Server2005版本之后引入的概念。数据库架构独立于创建它的数据厍用户而存在&#xff0c;每个对象都属于一个数据库架构&#xff08;对象包括表、视图、存储过程、函数、触发器等&#xff09;2、 数据库、架构和数据库对象数据库架构是一个独…

蒙提霍尔悖论(三门问题)终极分析(补充)附完整源码

上一篇文章分析了经典的蒙提霍尔问题&#xff0c;最后的结论是更换选择后有2/3的机会中奖。蒙提霍尔问题到此已经完结&#xff0c;但事实却并非如此。 在蒙提霍尔问题中&#xff0c;主持人事先知道汽车在哪个门后面&#xff0c;并且他一定会选择没有汽车的那扇门。如果我们稍稍…

电脑技巧:整理电脑键盘上每个键的含义

电脑键盘是把文字信息的控制信息输入电脑的通道&#xff0c;从英文打字机的键盘演变而来的。它最早出现在电脑上的时候&#xff0c;还是一种叫做“电传打字机”的部件。那些陌生的键盘按键都有什么用途? 很多新手不知道键盘上功能键和字母数字键以外的键盘按键有什么用&#x…

html统计表合并单元格的快捷键,合并单元格快捷键,小编教你excel怎么合并单元格快捷键...

合并单元格是我们经常要做的工作&#xff0c;如果有合并单元格的快捷键正是我们想要的&#xff0c;很遗憾&#xff0c;微软并没有直接提供这样一个快捷键&#xff0c;在excel表的运用中&#xff0c;难免会碰到希望将两个单元格合并的时候&#xff0c;那么怎么做呢&#xff1f;下…

SQLServer数据库实例相关知识笔记

1、概念介绍SQL实例实际上就是SQL服务器引擎&#xff0c;每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。在一台计算机上&#xff0c;可以安装多个SQL SERVER&#xff0c;每个SQL SERVER就可以理解为是一个数据库实例。2、SQL实例分类SQL实例分为默…

内存分配策略

举个例子&#xff0c;比如eden区为16M&#xff0c;s0区为2M,s1区为2M,old区为40M 一个大对象20M,此时eden区&#xff0c;s0区&#xff0c;s1区都放不下&#xff0c;那个大对象直接进入老年带 M

数据制作

1.数据准备&#xff0c;我们需要一个train和valid文件夹&#xff0c;一个train.txt和val.txt&#xff08;图片文件夹的位置可以任意&#xff0c;但是这两个txt文件的位置在data/fingervein/目录下&#xff09; train和valid文件夹自然就存放着待训练的图片&#xff0c;train.tx…

SQLServer数据库文件组相关知识笔记

1、数据库文件组概念数据库文件被组织在称为“文件组”的逻辑组中。文件组是所创建对象&#xff08;如表或索引&#xff09;的目标容器&#xff0c;对象数据将分散在其所在目标文件组的文件中&#xff0c;文件组可以按你要求的方式来控制对象的物理位置。每个数据库有一个主文件…

jvm配置参数,查看大对象直接分配到老年代

看下如下代码&#xff1a; 配置参数 -Xms60m -Xms60m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails 运行后看下如下&#xff0c;可以看到ParOldGen老年代&#xff0c;为used 20480K&#xff0c;也就20M&#xff0c;说明大对象直接分配到老年代 总结&#xff1a;

电脑组装笔记:手把手教你如何自己组装电脑

目录 第一步&#xff1a;安装CPU 第二步&#xff1a;安装内存条 第三步&#xff1a;CPU风扇安装 第四步&#xff1a;电源安装 第五步&#xff1a;主板装入机箱 第六步&#xff1a;硬盘、固态硬盘、光驱的安装 第七步&#xff1a;线路连接 第八步&#xff1a;显示器的连接 第九步…

Amoeba for MySQL

Amoeba for MySQL Amoeba for MySQL致力于MySQL的分布式数据库前端代理层&#xff0c;它主要在应用层访问MySQL的时候充当query 路由功能&#xff0c;专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、Query过滤、读写分…

SQLServer数据库文件相关知识笔记

1、数据库文件概念数据库文件是SQLServer数据库的物理体现&#xff0c;和计算机的普通文件一样存储在计算机的磁盘空间当中。作为数据库记录和日志等其他信息的存储载体。2、数据库文件分类数据库文件主要包括主数据库文件、次要数据库文件、日志文件。主数据库文件&#xff1a…