基于sqlcmd命令行工具管理SQL server
在SQL Server数据库当中,除了大家熟知的基于SSMS来管理SQL server数据库之外,还有一个很强大的命令行工具sqlcmd。该命令行工具基本等同于Oracle SQL*Plus以及 MySQL命令提示符下以实现相关的运维管理工作。尤其是需要多个脚本执行的时候,sqlcmd便派上用场了。本文描述了sqlcmd的一些常规用法以及给出如何通过批处理方式执行脚本的示例。
一、获取sqlcmd帮助
C:\>sqlcmd -? Microsoft (R) SQL Server Command Line Tool Version 12.0.2000.8 NT %当前版本为SQLserver2014 12.0% Copyright (c) 2014 Microsoft. All rights reserved. usage: Sqlcmd [-U login id][-P password][-S server][-H hostname][-E trusted connection][-N Encrypt Connection][-C Trust Server Certificate][-d use database name][-l login timeout][-t query timeout][-h headers][-s colseparator][-w screen width][-a packetsize][-e echo input][-I Enable Quoted Identifiers][-c cmdend][-L[c] list servers[clean output]] [-q "cmdline query"][-Q "cmdline query" and exit][-m errorlevel][-V severitylevel][-W remove trailing spaces][-u unicode output][-r[0|1] msgs to stderr] [-i inputfile][-o outputfile][-z new password][-f <codepage> | i:<codepage>[,o:<codepage>]] [-Z new password and exit][-k[1|2] remove[replace] control characters] [-y variable length type display width][-Y fixed length type display width][-p[1] print statistics[colon format]] [-R use client regional setting][-K application intent][-M multisubnet failover][-b On error batch abort][-v var = "value"...][-A dedicated admin connection][-X[1] disable commands, startup script, environment variables [and exit]] [-x disable variable substitution][-? show syntax summary]
二、最常用的选项
服务器选项(-S),用于标识 sqlcmd 连接到的 Microsoft SQL Server 实例。 身份验证选项(-E、-U 和 -P),用于指定 sqlcmd 连接到 SQL Server 实例所使用的凭据。-E 选项为默认选项,毋须指定。 输入选项(-Q、-q 和 -i),用于标识 sqlcmd 输入的位置。 输出选项 (-o),用于指定 sqlcmd 输出所在的文件。
三、常见用法
使用 Windows 身份验证连接到默认实例,以交互方式运行 Transact-SQL 语句:
sqlcmd -S <ComputerName>
上述示例中,未指定 -E,因为它是默认选项,而且 sqlcmd 使用 Windows 身份验证连接到默认实例。
使用 Windows 身份验证连接到命名实例,以交互方式运行 Transact-SQL 语句:
sqlcmd -S <ComputerName>\<InstanceName> 或者 sqlcmd -S .\<InstanceName>
使用 Windows 身份验证连接到命名实例,并指定输入和输出文件:
sqlcmd -S <ComputerName>\<InstanceName> -i <MyScript.sql> -o <MyOutput.rpt>
使用 Windows 身份验证连接到本地计算机上的默认实例,执行查询,并在查询运行完毕后使 sqlcmd 保持运行状态:
sqlcmd -q "SELECT * FROM AdventureWorks2012.Person.Person"
使用 Windows 身份验证连接到本地计算机上的默认实例,执行查询,将输出定向到某个文件,并在查询运行完毕后使 sqlcmd 退出:
sqlcmd -Q "SELECT * FROM AdventureWorks2012.Person.Person" -o MyOutput.txt
使用 SQL Server 身份验证连接到命名实例,以交互方式运行 Transact-SQL 语句,并由 sqlcmd 提示输入密码:
sqlcmd -U MyLogin -S <ComputerName>\<InstanceName>四、交互用法
交互方式,在请在未使用 -Q、-q、-Z 或 -i 选项指定任何输入文件或查询的情况下运行实用工具。
例如:sqlcmd -S <ComputerName>\<InstanceName>
交互方式2个常用的命令
GO + Enter : 将语句发送到SQLserver服务器并执行
Exit 或 QUIT : 退出sqlcmd命令行工作方式
:REST : 清除语句缓存,键入 ^C 将使 sqlcmd 退出,在发出 GO 命令后,还可以用 ^C 停止语句缓存的执行。
:ED : 使用编辑器编写SQL
示例
C:\>sqlcmd -U sa -P Sqlserve -H HQ1636
1> use testdb;
2> go
已将数据库上下文更改为 'testdb'。
1> select * from t2;
2> go
id id2 ename
----------- ----------- -------------------
1 1 NULL
1 NULL NULL
1 2 John
(3 rows affected)
1> exit五、使用sqlcmd运行SQL脚本
这个是比较管用的。对于熟悉Oracle SQL*Plus或者MySQL命令行的童鞋来说,有这个工具执行脚本,尤其是多个脚本需要执行的情绪,那个爽啊,不说了,直接看用法。
1、执行单个脚本
相关推荐
吹云 2020-11-05
84407805 2020-11-01
曾是土木人 2020-10-31
java0 2020-09-29
81437716 2020-09-18
81437716 2020-09-13
bluecarrot 2020-09-11
myCat 2020-09-09
83427718 2020-09-07
85560694 2020-09-03
89520991 2020-08-21
89550191 2020-08-09
katie000 2020-08-04
hunningtu 2020-07-30
89961330 2020-07-28
yuzhongdelei0 2020-07-28
yuzhongdelei0 2020-07-27