osql 实用工具
来源:互联网 发布:阿里云 cdn https 编辑:程序博客网 时间:2024/05/16 11:20
http://msdn.microsoft.com/zh-cn/library/ms162806.aspx
osql 实用工具
- SQL Server 2008 R2
- SQL Server 2008
- SQL Server 2005
使用 osql 实用工具,可以输入 Transact-SQL 语句、系统过程和脚本文件。此实用工具通过 ODBC 与服务器通信。
在 SQL Server 的未来版本中将删除此功能。 请避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 请改用 sqlcmd。 有关详细信息,请参阅 sqlcmd 实用工具。
osql[-?] |[-L] |[ { {-Ulogin_id [-Ppassword]} | –E } [-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name] [-ltime_out] [-ttime_out] [-hheaders] [-scol_separator] [-wcolumn_width] [-apacket_size] [-e] [-I] [-D data_source_name] [-ccmd_end] [-q "query"] [-Q"query"] [-n] [-merror_level] [-r {0 | 1}] [-iinput_file] [-ooutput_file] [-p] [-b] [-u] [-R] [-O]]
osql 不再支持 -n、-O 和-D 选项。
osql 实用工具从操作系统直接启动,并且使用本文中列出的区分大小写的选项。osql启动后将接受 SQL 语句,然后以交互方式将这些语句发送到 SQL Server。结果被格式化并在屏幕 (stdout) 上显示。可使用 QUIT 或 EXIT 退出 osql。
如果启动 osql 时不指定用户名,则 SQL Server 将检查并使用环境变量,如osqluser=(user) 或osqlserver=(server)。如果未设置环境变量,则使用工作站用户名。 如果未指定服务器,则使用工作站名称。
如果 -U 和 -P 选项都没有使用,则 SQL Server 将尝试使用 Microsoft Windows 身份验证模式进行连接。身份验证根据运行 osql 的用户的 Microsoft Windows 帐户进行。
osql 实用工具使用 ODBC API。对于 SQL Server ISO 连接选项,该实用工具使用 SQL Server ODBC 驱动程序的默认设置。有关详细信息,请参阅“ANSI 选项的效果”。
osql 实用工具不支持 CLR 用户定义数据类型。若要处理这些数据类型,必须使用 sqlcmd 实用工具。有关详细信息,请参阅 sqlcmd 实用工具。
OSQL 命令
除了 osql 中的 Transact-SQL 语句外,还可以使用以下命令。
命令
说明
GO
执行上一个 GO 命令之后输入的所有语句。
RESET
清除已输入的所有语句。
QUIT 或 EXIT( )
退出 osql。
Ctrl+C
结束查询但不退出 osql。
!! 和 ED 命令 不再受 osql 支持。
仅当命令终止符 GO(默认)、RESET、EXIT、QUIT 和 Ctrl+C 出现在一行的开始(紧跟osql 提示符)时,才会被识别。
GO 在批处理和执行任何缓存 Transact-SQL 语句结尾时会发出信号。在每个输入行的结尾按 Enter 键时,osql 将缓存此行的语句。键入 GO 后按 Enter 键时,所有当前已缓存的语句都将作为批处理发送到 SQL Server。
使用当前的 osql 实用工具时,好像在所执行的脚本结尾处都带有隐含的 GO,因而将执行脚本中的所有语句。
键入以命令终止符开始的行可结束命令。 可以在命令终止符后输入一个整数来指定命令运行的次数。 例如,若要执行此命令 100 次,可键入:
SELECT x = 1GO 100
命令执行结束之后将打印结果。 osql 每行的字符数不得超过 1,000 个。 长语句应当跨多行书写。
Windows 的命令撤回功能可用来撤回和修改 osql 语句。键入 RESET 可以清除现有的查询缓冲区。
运行存储过程时,osql 在批处理中的每个结果集之间打印一个空行。此外,如果没有应用于执行的语句,则不会出现“0 行受到影响”消息。
以交互方式使用 osql
若要以交互方式使用 osql,请在命令提示符中键入 osql 命令(以及任何选项)。
通过键入类似下面的命令,可以读入一个包含由 osql 执行的查询的文件(例如 Stores.qry):
osql -E -i stores.qry
通过键入类似下面的命令,可以读入包含查询的文件(如 Titles.qry),并将结果导向其他文件:
osql -E -i titles.qry -o titles.res
如果可能,请使用 -E选项(可信连接)。
以交互方式使用 osql 时,若要将操作系统文件读入命令缓冲区,可使用:rfile_name。 这会将 file_name 中的 SQL 脚本作为一个批处理直接发送给服务器。
使用 osql 时,如果批处理分隔符“GO”出现在 SQL 脚本文件中,则 SQL Server 会将其视为语法错误。
插入注释
可以在 osql 提交给 SQL Server 的 Transact-SQL 语句中包含注释。允许使用两种类型的注释样式:-- 和 /*...*/。
使用 EXIT 返回 osql 中的结果
可以使用 SELECT 语句的结果作为 osql 的返回值。如果为数值,则最后一个结果行的最后一列将转换为 4 字节的整数(长整型)。 MS-DOS 将低字节传递给父进程或操作系统错误级别。 Windows 则传递整个 4 字节整数。语法为:
EXIT ( < query > )
例如:
EXIT(SELECT @@ROWCOUNT)
还可以在批处理文件中包含 EXIT 参数。 例如:
osql -E -Q "EXIT(SELECT COUNT(*) FROM '%1')"
osql 实用工具将在圆括号 ( ) 中输入的所有内容原样传递给服务器。如果存储系统过程选择了一个集合并返回一个值,则仅返回选择的内容。 圆括号中无参数的 EXIT() 语句将执行批处理中此语句前的所有内容,然后不返回值退出。
EXIT 格式有四种:
EXIT
不执行批处理,立即退出,不返回值。
EXIT()
执行批处理后退出,不返回值。
EXIT(query)
执行包括查询的批处理,返回查询的结果后退出。
状态为 127 的 RAISERROR。
如果在 osql 脚本中使用 RAISERROR,并且出现状态 127,则osql 将退出,并将消息 ID 返回给客户端。 例如:
RAISERROR(50001, 10, 127)
此错误将导致 osql 脚本终止,并向客户端返回消息 ID 50001。
返回值 1 - 99 是为 SQL Server 保留的;osql 可定义下列值:
-100
选择返回值前遇到错误。
-101
选择返回值时找不到行。
-102
选择返回值时发生转换错误。
显示 Money 和 Smallmoney 数据类型
osql 只用两位小数位数显示 money 和smallmoney 数据类型,但 SQL Server 用四位小数位数在内部存储值。请看下例:
SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))GO
此语句的结果为 10.3496,说明该值是原样按完整的小数位存储的。
参考
- osql 实用工具
- osql 实用工具_用法
- OSQL
- osql Utility(osql 工具)
- 实用工具
- ~~~实用工具~~~
- 实用工具
- 实用工具
- 实用工具
- 实用工具
- 实用工具
- 实用工具
- 实用工具
- 实用工具
- OSQL管理
- OSQL 用法
- OSQL 用法
- osql 用法
- 数据结构之二叉树
- LDD3源码主目录下的Rules.make文件分析
- Oracle 11g 密码永不过期的设定
- 6月12日坐火车
- sscanf的用法
- osql 实用工具
- Android EGL接口解析
- 在.NET中,SQL数据库链接的类
- 【转】运行jar应用程序引用其他jar包的四种方法
- 深入学习EGL .
- python下paramiko模块学习之三:上传批量文件到远程主机
- HTTP协议详解
- 使用 logcat 命令打印内核信息
- 【Git学习笔记】1.5 - 初次运行 Git 前的配置