回归命令行 SQLServer的命令行工具们(2) – sqlcmd.exe(中篇)

2024-05-01 01:38

本文主要是介绍回归命令行 SQLServer的命令行工具们(2) – sqlcmd.exe(中篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在了解完sqlcmd 参数之后,我们载来看看sqlcmd的命令,使用:Help来看看一共有那些命令

1> :Help

:!! [<命令>]

 - 在 Windows 命令 shell 中执行命令。

:connect server[/instance] [-l 超时值] [-U 用户 [-P 密

 - 连接到 SQL Server 实例。

:ed

 - 编辑当前语句缓存或上次执行的语句缓存。

:error <目标>

 - 将错误输出重定向到文件、stderr 或 stdout。

:exit

 - 立即退出 sqlcmd。

:exit()

 - 执行语句缓存;不返回值,直接退出。

:exit(<查询>)

 - 执行指定的查询;返回数字结果。

go [<n>]

 - 执行语句缓存(n 次)。

:help

 - 显示此命令列表。

:list

 - 输出语句缓存的内容。

:listvar

 - 列出设置的 sqlcmd 脚本变量。

:on error [exit|ignore]

 - 在执行批处理或 sqlcmd 命令时应对错误的措施。

:out <文件名>|stderr|stdout

 - 将查询输出重定向到文件、stderr 或 stdout。

:perftrace <文件名>|stderr|stdout

 - 将计时输出重定向到文件、stderr 或 stdout。

:quit

 - 立即退出 sqlcmd。

:r <文件名>

 - 将文件内容追加到语句缓存之后。

:reset

 - 放弃语句缓存。

:serverlist

 - 列出本地 SQL Server 和网络中的 SQL Server。

:setvar {variable}

 - 删除 sqlcmd 脚本变量。

:setvar <变量> <值>

 - 设置 sqlcmd 脚本变量。

Sqlcmd的命令都是以”:”符号开始的(除了GO,打:GO系统会认为是向缓存区添加了一段字符:GO),虽然有些命令可以省略”:”,但是为了安全与方便记忆,实用的时候推荐大家还是打上”:”把,辛苦多打下一个”:”不会引发任何血案的,我保证!^_^

 

下面是每个命令的解释:

[:] !!< command>

    执行操作系统命令,在脚本中常见,极大的增强了交互性能。

    当然,偶尔还为忘记了(或是偷懒想copy)IO文件名的程序员们提供DIR命令。

下面是例子

3> !!dir

驱动器 C 中的卷没有标签。

卷的序列号是 044A-C8D9 

C:/Documents and Settings/chenxie.IFLYTEK 的目录

2006-12-29 08:46    <DIR>          .

2006-12-29 08:46    <DIR>          ..

2006-12-29 08:46                 0 awstats.myvirtualhostname

2006-12-29 08:46                 0 awstats.myvirtualhostname.html

2006-12-30 16:23    <DIR>          Favorites

2006-12-02 11:49               664 intlname.ols

2006-12-31 09:10    <DIR>          My Documents

2006-12-11 14:37    <DIR>          VSWebCache

2006-10-27 15:14    <DIR>          WINDOWS

2006-12-04 17:39    <DIR>          「开始」菜单

2006-12-30 14:09    <DIR>          桌面

             3 个文件            664 字节

             8 个目录 7,063,961,600 可用字节 

:Connect server_name[/instance_name] [-l timeout] [-U user_name [-P password]]

-关闭当前的连接,连接到另一个的 SQL Server实例。不指定timeout将使用SQLCMDLOGINTIMEOUT变量值。

:ed

 - 编辑当前语句缓存或上次执行的语句缓存。

   召唤编辑器来编辑缓存中的语句,默认为Edit.com。可以通过修改SQLCMDEDITOR 环境变量来改变编辑器(比如 SET SQLCMDEDITOR=notepad)。

另外提一句:不知道什么原因,我使用Edit.com之后回到sqlcmd,所有的中文都无法正确显示了具体原因也找不到,郁闷,期待高手。

:Error <filename>|STDERR|STDOUT

 - 将错误输出重定向到文件.

    若该文件已经存在,则将其截断为零字节。若该文件不可访问(由于权限或其他原因),将不会切换输出,也不会将输出发送到上次指定的目标或默认目标。默认情况下,错误输出将发送到 stderr流。

: EXIT[ (statement) ]

 - 立即退出 sqlcmd。:EXIT用法很有讲究,实用的时候请注意

:EXIT
不执行批处理就立即退出,无返回值。

:EXIT( )
执行批处理后退出,无返回值。

:EXIT(query)
执行包括查询的批处理,返回查询的结果后退出。

   Statement的值是将第一个结果行的第一列转换为 4 字节的整数(长整型)。SQL Server 保留了介于 -1 到 -99 之间的返回值;sqlcmd 定义了以下附加返回值-100:选择返回值前遇到错误。-101:选择返回值时找不到行。-102:选择返回值时发生转换错误。

在编写自动脚本的时候:EXIT很实用。

go [<n>]

 - 执行语句缓存(n 次)。示例如下:

1> select count(*) from TestTab;
2> go 3
-----------
 410
(1 行受影响)
-----------
410
(1 行受影响)
-----------
 410
(1 行受影响)
1>

:list

 - 输出语句缓存的内容。Go过之后,语句即被清掉,:list显示为空。示例如下

1> select count(*) from TestTab;
2> :list
select count(*) from LCS_BIZOBJECT;

2> go
-----------
410
 (1 行受影响)
1> :list
1>

:listvar

- 列出设置的 sqlcmd 脚本变量,方便使用sqlcmd。

:on error [exit|ignore]

- 在执行批处理或 sqlcmd 命令时应对错误的措施。
设置在脚本或批处理执行过程中发生错误时要执行的操作。
默认情况下,会打印错误消息。

Exit: sqlcmd 退出,并显示相应的错误值。
Ignore: sqlcmd 会忽略错误,并继续执行批处理或脚本。

:out < filename >|stderr|stdout


 -将所有查询结果重定向到 filename 指定的文件、stderr 或 stdout。
默认情况下,输出将发送到 stdout。

:perftrace < filename >|stderr|stdout

 - 将计时输出重定向到文件、stderr 或 stdout。
默认情况下,输出将发送到 stdout。

:quit

 - 立即退出 sqlcmd。

:r < filename >

 - 将文件内容追加到语句缓存之后。

:reset

 - 放弃语句缓存。

:serverlist

 - 列出网络中的 SQL Server。

:setvar {variable}

 - 删除 sqlcmd 脚本变量。

:setvar < variable > <value>

 - 设置 sqlcmd 脚本变量。

   如果使用 :Setvar 定义的变量和某个环境变量同名,则使用 :Setvar 定义的变量优先。变量名中不能包含空格字符。如果脚本变量的字符串值中含有空格,请用引号将该值引起来。否则将被华丽的无视。
如果未指定脚本变量的值,则将删除该脚本变量。
变量名不能与变量表达式(例如 $(var))具有相同的形式

 

From:http://www.cnblogs.com/trisaeyes/archive/2006/12/31/608708.html

这篇关于回归命令行 SQLServer的命令行工具们(2) – sqlcmd.exe(中篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950423

相关文章

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Mysql如何解决死锁问题

《Mysql如何解决死锁问题》:本文主要介绍Mysql如何解决死锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录【一】mysql中锁分类和加锁情况【1】按锁的粒度分类全局锁表级锁行级锁【2】按锁的模式分类【二】加锁方式的影响因素【三】Mysql的死锁情况【1

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分