iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何通过批处理调用SQL
  • 900
分享到

如何通过批处理调用SQL

2023-06-08 13:06:16 900人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关如何通过批处理调用sql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。osql /U alma /P /i stores.bat (stores.bat中包含updat

这篇文章将为大家详细讲解有关如何通过批处理调用sql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

osql /U alma /P /i stores.bat
(stores.bat中包含update ,delete语句,不过,不需要使用Go)
----------------------------------------------------
osql 实用工具
osql 实用工具使您得以输入 Transact-SQL 语句、系统过程和脚本文件。该实用工具通过 ODBC 与服务器通讯。
语法
osql
[-?] ¦
[-L] ¦
[
{
{-U login_id [-P passWord]}
¦ -E
}
[-S server_name[instance_name]] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-I] [-D data_source_name]
[-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 ¦ 1}]
[-i input_file] [-o output_file] [-p]
[-b] [-u] [-R] [-O]
]
参数-?
显示 osql 开关的语法摘要。
-L
列出在本地配置的服务器和在网络上广播的服务器的名称。
-U login_id
用户登录 ID。登录 ID 区分大小写。
-P password
是用户指定的密码。如果未使用 -P 选项,osql 将提示输入密码。如果在命令提示符的末尾使用 -P 选项而不带密码,osql 使用默认密码 (NULL)。密码区分大小写。
OSQLPASSWORD 环境变量使您得以为当前会话设置默认密码。因此,不需要通过硬编码来在批处理文件中设置密码。
如果没有为 -P 选项指定密码,osql 首先检查 OSQLPASSWORD 变量。如果未设置值,osql 使用默认密码 (NULL)。以下示例在命令提示符处设置 OSQLPASSWORD 变量,然后访问 osql 实用工具:
C:>SET OSQLPASSWORD=abracadabra
C:>osql
-E
使用信任连接而不请求密码。
-S server_name[instance_name]
指定要连接的 Microsoft® SQL Server™ 2000 实例。在该服务器上指定 server_name 以连接到 SQL Server 的默认实例。在该服务器上指定 server_nameinstance_name 以连接到一个已命名的 SQL Server 2000 的实例。如果未指定服务器,osql 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 osql 时,此选项是必需的。
-H wksta_name
是工作站名称。工作站名称存储在 sysprocesses.hostname 中并由 sp_who 显示。如果未指定此选项,则采用当前计算机名称。
-d db_name
启动 osql 时发出一个 USE db_name 语句。
-l time_out
指定 osql 登录超时之前的秒数。登录到 osql 的默认超时为 8 秒。
-t time_out
指定命令超时之前的秒数。如果未指定 time_out 值,则命令不会超时。
-h headers
指定要在列标题之间打印的行数。默认为每一查询结果集打印一次标题。用 –1 指定不打印标题。如果使用 -1,则在参数和设置之间一定不能有空格(可以是 -h-1,不能是 -h –1)。
-s col_separator
指定列分隔符字符,其默认为空格。若要使用对操作系统有特殊含义的字符(例如 &brvbar; ; & < >),请将该字符用双引号 (") 引起来。
-w column_width
允许用户设置屏幕输出的宽度。默认为 80 个字符。当输出行达到其最大屏幕宽度时,会拆分为多个行。
-a packet_size
使您得以请求不同大小的数据包。packet_size 的有效值在 512 到 65535 之间。osql 的默认值为服务器的默认值。数据包大小的增加可以提高较大脚本执行的性能,在这种执行中 GO 命令之间 SQL 语句的数量很重要。Microsoft 的测试表明 8192 是大容量复制操作典型的最快设置。可以请求更大的数据包大小,但如果请求不能得到批准,则 osql 默认为服务器的默认值。
-e
回显输入。
-I
设置 QUOTED_IDENTIFIER 连接选项为开启。
-D data_source_name
连接到用 Microsoft SQL Server 的 ODBC 驱动程序定义的 ODBC 数据源。osql 连接使用该数据源中指定的选项。

说明 该选项不适用于其它驱动程序定义的数据源。

-c cmd_end
指定命令终止符。默认情况下,通过单独在一行中输入 GO 来终止命令并将其发送到 SQL Server 2000。在重置命令终止符时,不要使用对操作系统有特殊含义的 Transact-SQL 保留字或字符,无论其前面是否有反斜杠。
-q "query"
启动 osql 时执行查询,但是在查询完成时不退出 osql。(注意查询语句不应包含 GO)。如果从批处理文件中发出查询,请使用 %variables 或环境 %variables%。例如:
SET table = sysobjects
osql /q "Select * from %table%"
将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
-Q "query"
执行查询并立即退出 osql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
-n
从输入行中删除编号和提示符号 (>)。
-m error_level
自定义错误信息的显示。显示指定的或更高严重级别错误的消息数、状态和错误级别。不显示严重级别低于指定级别的错误的任何信息。用 -1 指定与消息一起返回所有标题,即使是信息类的消息。如果用 –1,则在参数和设置之间不能有空格(可以是 -m-1,不能是 -m -1)。
-r {0 &brvbar; 1}
将消息输出重定向到屏幕 (stderr)。如果未指定参数,或指定参数为 0,则仅重定向严重级别为 17 或更高的错误信息。如果指定参数为 1,则将重定向所有消息输出(包括 "print")。
-i input_file
标识包含一批 SQL 语句或存储过程的文件。小于 ( <) 比较运算符可以用来代替 –i。
-o output_file
标识从 osql 接收输出的文件。大于 (>) 比较运算符可以用来代替 –o。
如果 input_file 不是 Unicode 并且没有指定 -u,则 output_file 将存储为 OEM 格式。如果 input_file 是 Unicode 或者指定了 -u,则 output_file 将存储为 Unicode 格式。
-p
打印性能统计。
-b
指定发生错误时 osql 退出并返回一个 DOS ERRORLEVEL 值。当 SQL Server 错误信息的严重级别为 10 或更高时,返回给 DOS ERRORLEVEL 变量的值为 1;否则返回 0。Microsoft MS-DOS&reg; 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。
-u
指定 output_file 存储为 Unicode 格式,而不管 input_file 为何种格式。
-R
指定在将货币、日期和时间数据转换为字符数据时 SQL Server ODBC 驱动程序使用客户端设置。
-O
为与 isql 的早期版本行为匹配,指定停用某些 osql 功能。下列功能停用:
EOF 批处理

控制台宽度自动调整

宽信息
同时还将 DOS ERRORLEVEL 的默认值设置为 –1。
注释
osql 实用工具从操作系统直接启动,并且使用本文中列出的区分大小写的选项。启动后,osql 接受 SQL 语句并将它们交互地发送到 SQL Server。结果被格式化并显示在屏幕上 (stdout)。可使用 QUIT 或 EXIT 退出 osql。
如果启动 osql 时未指定用户名,SQL Server 2000 将检查环境变量并使用它们,例如 osqluser=(user) 或 osqlserver=(server)。如果未设置环境变量,则使用工作站用户名。如果未指定服务器,则使用工作站名称。
如果 -U 或 -P 选项都没有使用,则 SQL Server 2000 将尝试使用 windows 身份验证模式进行连接。身份验证基于运行 osql 的 Microsoft Windows NT&reg; 用户帐户。
osql 实用工具使用 ODBC api。该实用工具使用 SQL Server 2000 SQL-92 连接选项的 SQL Server ODBC 驱动程序默认设置。有关更多信息,请参见 SQL-92 选项的效果。
有关此实用工具位置和运行方式的信息,请参见命令提示实用工具入门
OSQL 命令
除了 osql 中使用的 Transact-SQL 语句外,下表中的命令也可用。
命令 描述
GO 执行最后一个 GO 命令之后输入的所有语句。
RESET 清除已输入的所有语句。
ED 调用编辑器。
!! command 执行操作系统命令。
QUIT 或 EXIT( ) 退出 osql。
CTRL+C 键 不退出 osql 而结束查询。

仅当命令终止符 GO(默认)、RESET、ED、!!、EXIT、QUIT 和 CTRL+C 出现在一行的开始(紧跟 osql 提示符)时才可以识别。osql 忽视同一行中这些关键字后输入的任何内容。
GO 表明一批的结束和任何已被高速缓存的 Transact-SQL 语句的执行。在每个输入行的结尾按 ENTER 键时,osql 将高速缓存此行的语句。键入 GO 后按 ENTER 键时,所有当前已缓存的语句都将作为批处理发送到 SQL Server。
当前的 osql 实用工具工作起来就好像在任何被执行的脚本结尾处都带有隐含的 GO,因而脚本中的所有语句都将执行。最后一个 GO 后的任何语句都不执行。
通过键入以命令终止符作为开始的行来结束命令。可以在命令终止符后输入一个整数来指定命令运行的次数。例如,若要执行此命令 100次,请键入:
SELECT x = 1
GO 100
执行结束时打印一次结果。osql 不接受每行字符数超过 1,000 的结果。长语句应当跨多个行书写。
通过在行首键入 ED,用户可以在当前查询缓冲区上调用编辑器。编辑器在 EDITOR 环境变量中定义。默认编辑器为"edit"。可以通过设置 EDITOR 环境变量来指定其它编辑器。例如,若要将默认编辑器指定为 Notepad,请在操作系统提示符处输入:
SET EDITOR=notepad
操作系统命令
通过用两个惊叹号 (!!) 开始一行,然后输入命令的方式,也可以执行操作系统命令。Windows NT 的命令撤回功能可用来撤回和修改 osql 语句。键入 RESET 可以清除现有的查询缓冲区。
在运行存储过程时,osql 在批处理中的每个结果集之间打印一个空行。此外,如果没有应用于已执行的语句,则"0 行受到影响"消息不会出现。
交互性使用 osql
若要交互性使用 osql,请在命令提示符处键入 osql 命令(以及任何选项)。
可以通过键入类似下行的命令,在包含由 osql 执行的查询的文件(例如 Stores.qry)中进行读取:
osql /U alma /P /i stores.qry
该文件必须包含命令终止符。
可以通过键入类似下行的命令,在包含查询的文件(例如 Titles.qry)中进行读取并将结果导向另一文件:
osql /U alma /P /i titles.qry /o titles.res
交互性使用 osql 时,为把操作系统文件读入到命令缓冲区,可使用:r file_name。不要在文件中包含命令终止符;在完成编辑后交互输入终止符。
插入注释
在 osql 提交给 SQL Server 的 Transact-SQL 语句中可以包含注释。允许使用两种注释风格类型:-- 和 。
有关更多信息,请参见使用注释。
使用 EXIT 返回 osql 结果
可以使用 SELECT 语句的结果作为 osql 的返回值。第一个结果行的第一列转换为 4 字节的整数(长整型)。MS-DOS 将低字节传递给父进程或操作系统错误级别。Windows NT 则传递整个 4 字节整数。语法为:
EXIT(query)
例如:
EXIT(SELECT @@ROWCOUNT)
EXIT(SELECT 5)
也可以包含 EXIT 参数,使其作为批处理文件的一部分。例如:
osql /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 返回给客户程序。
SQL Server 保留介于 -1 到 -99 之间的返回值;osql 定义下列值:
-100
选择返回值前遇到的错误。
-101
选择返回值时找不到行。
-102
选择返回值时发生转换错误。
显示 money 和 smallmoney 数据类型
osql 只用两位小数位数显示 money 和 smallmoney 数据类型,但 SQL Server 用四位小数位数在内部存储这两类数据的值。请看下例:
SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))
此语句的结果为 10.3496,说明该值是原样按完整的小数位存储的。
'----------------------------------------------------------------------------------------------------------
先把你这条语句保存在一个.sql的文件里。
然后.bat文件里这样写

osql -s [服务器] -U [用户名] -P [密码] -d [数据库] -n -i [.sql文件]
把中括号去掉

关于“如何通过批处理调用SQL”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何通过批处理调用SQL

本文链接: https://www.lsjlt.com/news/254164.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何通过批处理调用SQL
    这篇文章将为大家详细讲解有关如何通过批处理调用SQL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。osql /U alma /P /i stores.bat (stores.bat中包含updat ...
    99+
    2023-06-08
  • 如何通过批处理修改DNS的代码
    这篇文章给大家分享的是有关如何通过批处理修改DNS的代码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。批处理改DNS(推荐):代码如下:@echo off::判断本地连接 赋值afor /f "toke...
    99+
    2023-06-08
  • 如何通过批处理修改FTP账号和密码
    这篇文章主要介绍如何通过批处理修改FTP账号和密码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法一、批处理修改FTP账号和密码@echo offrem 指定FTP用户名set ftp...
    99+
    2023-06-08
  • 如何使用PL/SQL处理批量数据
    在PL/SQL中处理批量数据通常使用游标和循环来实现。以下是一个简单的示例: 使用游标来访问需要处理的数据集合: DECLARE...
    99+
    2024-05-07
    PL/SQL
  • 如何通过批处理bat设置系统环境变量
    这篇文章主要讲解了“如何通过批处理bat设置系统环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过批处理bat设置系统环境变量”吧!bat代码set JAVA_HOME...
    99+
    2023-06-08
  • 如何通过PHP脚本在Linux中批量处理文件
    概述:在Linux环境下,批量处理文件是一种常见的需求。使用PHP脚本可以快速而有效地完成这一任务。本文将介绍如何通过PHP脚本在Linux中批量处理文件,并提供相关代码示例。步骤:确保PHP已安装:在Linux中使用PHP脚本处理文件,首...
    99+
    2023-10-21
    Linux PHP 文件处理
  • 如何使用BAT批处理执行sql语句
    本篇内容介绍了“如何使用BAT批处理执行sql语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!把待执行Sql保存在一个文件,这里为2011...
    99+
    2023-06-08
  • 如何通过SQL语句在MongoDB中实现事务处理?
    如何通过SQL语句在MongoDB中实现事务处理?摘要:作为一种非关系型数据库,MongoDB一直以其高性能和可扩展性而闻名。然而,对于需要进行事务处理的应用程序而言,MongoDB在较早的版本中并不支持事务功能。不过,从MongoDB 4...
    99+
    2023-12-17
    MongoDB 事务处理 SQL语句
  • SQL Server使用T-SQL语句批处理
    批处理简介 批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。 为了将...
    99+
    2024-04-02
  • 如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率
    本篇文章给大家分享的是有关如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。&nbs...
    99+
    2024-04-02
  • HTML中如何通过PHP调用C++
    这篇文章给大家分享的是有关HTML中如何通过PHP调用C++ 的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、在本地服务器目录下新建一个 test 文件夹,在此文件夹中新建文件...
    99+
    2024-04-02
  • 如何通过jquery实现ajax调用
    这篇文章主要讲解了“如何通过jquery实现ajax调用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过jquery实现ajax调用”吧! ...
    99+
    2024-04-02
  • 如何通过调优SQL查询以提高Hadoop性能
    调优SQL查询可以显著提高Hadoop的性能。以下是一些可以帮助优化SQL查询的方法: 确保正确使用索引:在Hadoop中使用索...
    99+
    2024-04-09
    Hadoop
  • 计算机中如何通过批处理关闭135 137 445等端口
    这篇文章将为大家详细讲解有关计算机中如何通过批处理关闭135 137 445等端口,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主要是通过bat操作防火墙添加规则,一般是tcp与udp。日前,全球近百个国...
    99+
    2023-06-08
  • sql主文件过大如何处理
    如果SQL主文件过大,可以考虑以下几种处理方法: 分割文件:将大文件拆分成多个小文件,每个文件包含部分SQL语句,可以根据功能或...
    99+
    2024-04-09
    sql
  • 如何通过批处理实现删除运行、查找等处的历史记录
    这篇文章主要介绍了如何通过批处理实现删除运行、查找等处的历史记录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。批处理代码:代码如下:@echo off :: 删除"...
    99+
    2023-06-08
  • 如何自动生成批量执行SQL脚本的批处理
    这篇文章主要介绍如何自动生成批量执行SQL脚本的批处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!场景: DBA那边给我导出了所有的存储、函数等等对象的创建脚本,有上千个文件. 现在需要将这些对象创建脚本导入到另外...
    99+
    2023-06-08
  • SQL Server中如何调用存储过程
    SQL Server中如何调用存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  1:删除  CREATEPROCEDU...
    99+
    2024-04-02
  • 如何通过终端调试 AngularJS 应用
    这期内容当中小编将会给大家带来有关如何通过终端调试 AngularJS 应用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当我们构建AngularJS应用时,通过浏览器(...
    99+
    2024-04-02
  • php如何通过变量调用方法
    这篇“php如何通过变量调用方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何通过变量调用方法”文章吧。1.使用可...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作