




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL server中sqlcmd命令行工具的使用方法SQL server2008在C:Program FilesMicrosoft SQL Server100ToolsBinn,有的可能在C:Program FilesMicrosoft SQL Server90ToolsBinn,你自己找找。然后看看PATH路径中有没有path=C:Program FilesMicrosoft SQL Server100ToolsBinn默认你安装了MS server就会有。如果是sql2000的话.那么就用osql连接,如以下例子,osql -S Localhost -U sa -P 123 注意大小写 select count(*) from sysobjects 如果在sql2005及以上版本下,把上面脚本的OSQL改为sqlcmd是可以运行的。我使用2008使用OSQL会出现,用SQLCMD代替的提示:-使用工具OSQL:C:UsersAdministratorosql -? /查看osql用法C:UsersAdministratorosql -S ZLQ-PC -U sa -P 123 ?Microsoft (R) SQL Server Command Line ToolVersion 10.0.1600.22 NT INTEL X86Copyright (c) Microsoft Corporation. All rights reserved.Note: osql does not support all features of SQL Server 2008.Use sqlcmd instead. See SQL Server Books Online for details.usage: osql -U login id -P password -S server -H hostname -E trusted connection -d use database name -l login timeout -t query timeout -h headers -s colseparator -w columnwidth -a packetsize -e echo input -I Enable Quoted Identifiers -L list servers -c cmdend -D ODBC DSN name -q cmdline query -Q cmdline query and exit -n remove numbering -m errorlevel -r msgs to stderr -V severitylevel -i inputfile -o outputfile -p print statistics -b On error batch abort -X1 disable commands and exit with warning -O use Old ISQL behavior disables the following batch processing Auto console width scaling Wide messages default errorlevel is -1 vs 1 -? show syntax summary解释:参数-? 显示 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_nameinstance_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 指定列分隔符字符,其默认为空格。若要使用对操作系统有特殊含义的字符(例如 | ; & ),请将该字符用双引号 () 引起来。 -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 | 1 将消息输出重定向到屏幕 (stderr)。如果未指定参数,或指定参数为 0,则仅重定向严重级别为 17 或更高的错误信息。如果指定参数为 1,则将重定向所有消息输出(包括 print)。 -i input_file 标识包含一批 SQL 语句或存储过程的文件。小于 () 比较运算符可以用来代替 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® 批处理文件可以测试 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® 用户帐户。交互性使用 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。不要在文件中包含命令终止符;在完成编辑后交互输入终止符。举例:C:UsersAdministratorosql -S ZLQ-PC -U sa -P 123 -q select count(*) as countfrom sysobjects count- 1999(1 row affected)/如果想继续执行SQL查询,输入关键字goC:UsersAdministratorosql -S ZLQ-PC -U sa -P 123 -d test1 -q select * fromstudentsno sname sage ssex- - - - 1 张三 1980-01-23 00:00:00.000 男 2 李四 1982-12-12 00:00:00.000 女 3 张飒 1981-09-09 00:00:00.000 男 4 莉莉 1983-03-23 00:00:00.000 女 5 王弼 1982-06-21 00:00:00.000 男 6 王丽 1984-10-10 00:00:00.000 女 7 刘香 1980-12-22 00:00:00.000 女(7 rows affected)1 select * from teacher2 go/ go 是立即执行该缓存语句tno tname- - 1 张老师 2 王老师 3 李老师 4 赵老师 5 刘老师 6 向老师 7 李文静 8 叶平(8 rows affected)1-使用工具SQLCMD:使用sqlcmd:C:UsersAdministratorsqlcmd -?Microsoft (R) SQL Server Command Line ToolVersion 10.0.1600.22 NT INTEL X86Copyright (c) Microsoft Corporation. All rights reserved.usage: Sqlcmd -U login id -P password -S server -H hostname -E trusted connection -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 -Lc list serversclean output -q cmdline query -Q cmdline query and exit -m errorlevel -V severitylevel -W remove trailing spaces -u unicode output -r0|1 msgs to stderr -i inputfile -o outputfile -z new password -f | i:,o: -Z new password and exit -k1|2 removereplace control characters -y variable length type display width -Y fixed length type display width -p1 print statisticscolon format -R use client regional setting -b On error batch abort -v var = value. -A dedicated admin connection -X1 disable commands, startup script, enviroment variables and exit -x disable variable substitution -? show syntax summary举例:C:UsersAdministratorsqlcmd -S zlq-pc -U sa -P 123 -d test11 select * from teacher2 gotno tname- - 1 张老师 2 王老师 3 李老师 4 赵老师 5 刘老师 6 向老师 7 李文静 8 叶平(8 rows affected)1C:UsersAdministratorsqlcmd -S zlq-pc -U sa -P 1231 use test12 select top 10 * from sc3 goChanged database context to test1.sno cno score- - - 1 1 80 1 2 86 1 3 83 1 4 89 2 1 50 2 2 36 2 4 59 3 1 50 3 2 96 3 4 69(10 rows affected)1下面的内容是详细介绍sqlcmd的,有兴趣的朋友可以看看因为公司的业务需要,所以采集了一个2W多条的数据,都是insert语句,生成一个200多M的数据,谁料在通过sql server 2005不能直接打开,导入也存在问题,用记事本也打不开,复制贴也不行,最后还是一同学提了个醒用命令在dos下执行.sql文件,才有了办法,同时也 在一热心网友的帮助下完成了这个让我头疼半天的活,下面我对这些做一下介绍,应该对有这样需要的朋友很好的帮助。如果装的是2000版的sql那用的命令是osql,05的用sqlcmd其实用法很简单,任何技术,一旦说穿就失去了它的神秘,这有点像生活中的很多事,好了废话了半天,还是切入正题,开工吧:其实就是一句很简单的话句:sqlcmd -i sqlfile.sql -d databasename -s 127.0.0.1这个sql文件要放在c:下就这么简单.sqlcmd 使用笔记登录sqlcmd命令 sqlcmd -S 服务器名称 -U 帐户 -P 密码示例 sqlcmd -S HOMESQLEXPRESS -U sa -P 12345678直接执行SQL Script命令 sqlcmd -S 服务器名称 -U 帐户 -P 密码 -d 数据库 -i SQL Script示例 sqlcmd -S HOMESQLEXPRESS -U sa -P 12345678 -d Database -i E:My Documentstest.sql查询当前服务器上的数据库(*) 可能需要 Use Master1. Select Name From sysdatabases2. sp_helpdb查询当前数据库的表和存储过程表:select * from sysobjects where status =0 and xtype=U存储过程:select * from sysobjects where status =0 and xtype=P-1、你可以用SQLCMD执行交互式动作,如:C:sqlcmdsqlcmd1 SELECT name from sys.databases2 GO你也可以试着键入如下命令,现实服务器列表1:ServerListSERVERS:WUYZ1如果想看其他命令的使用,可以键入:Help /?2、执行SQL脚本文件你可以在SQLCMD命令上加入参数I来执行SQL脚本文件,例如:C:sqlcmdsqlcmd -i test.sql上面的I选项允许你执行一个脚本文件,另外,你也可以指定O选项,把命令的输出导出到指定文件,当然,我们也可以在代码中指定输出结果,如下C:sqlcmdsqlcmd1 :out output.txt2 :r test.sql3、在脚本中使用变量SQLCMD支持可以在脚本中接收用户传入的变量信息,如下面语句:SET NOCOUNT ONSelect $(Cols) from $(tablename)GO上面语句请求2个参数,我们可以通过指定相应的参数信息传给脚本,如下:C:sqlcmdsqlcmd -i test.sql -o Output.txt -v cols=name,object_id,create_date tablename=sys.objects上面语句的用途是:执行TEST.SQL脚本文件,并把输出的信息输出到OUTPUT.TXT文件中,并分别指定了COLS,TABLENAME的参数值4、在脚本中设置变量的值除了通过外部传入参数的值外,还可以在内部设置参数的值,如下面例子e:sqlcmdbackuptemplate.sqluse masterbackup database $(db) to disk=$(file)e:sqlcmdbackupsingle.sql:setvar db msdb:setvar file c:tempmsdb.bak:r e:sqlcmdbackuptemplate.sql如果你想知道当然定义了哪些变量,可以使用:listvar命令来显示。主要命令汇总::r filename:ServerList:List:Listvar:Error filename | STDOUT | STDERR:Out filename | STDOUT | STDERR:Perftrace filename | STDOUT | STDERR:Connect serverinstance timeout user_namepassword :On Error exit | ignore:SetVar variable value:Help:XML ON | OFF主要环境变量汇总:-a SQLCMDPACKETSIZE-d SQLCMDDBNAME-H SQLCMDWORKSTATION-h SQLCMDHEADERS-l SQLCMDLOGINTIMEOUT-m SQLCMDERRORLEVEL-P SQLCMDPASSWORD-S SQLCMSSERVER-s SQLCMDCOLSEP-t SQLCMDSTATTIMEOUT-U SQLCMDUSER-w SQLCMDCOLWIDTH-T-SQL还原数据库备份restore database TionkDatabase from disk=E:工作讯客项目讯客直销代码db20080521width move 源文件 to 目标文件位置-使用 T-SQL 执行还原RESTORE 命令有两种形式显示如下:RESTORE DATABASE 还原完整的资料库、档案或档案群组。RESTORE LOG 还原交易记录档。RESTORE 陈述式执行完整资料库还原时 RESTORE 陈述式的语法如下:RESTORE DATABASE database_name FROM backup_device WITH options 这个陈述式只要求资料库的档案名称和备份所在的位置。执行档案和档案群组还原时陈述式的语法如下:RESTORE DATABASE database_name FILE = file_name FILEGROUP = filegroup_name FROM backup_device WITH options 这个陈述式只要求资料库名称、档案名称或档案群组名称和备份所在的位置。执行交易记录还原时陈述式的语法如下:RESTORE LOG database_name FROM backup_device WITH options 就如同其他的命令,database_name 是还原将要执行的资料库名称。backup_device 参数可以是逻辑备份装置名称或实体装置的名称。如果要指定一个实体装置,必须限定它的装置类型也就是说,装置名称前面必须加上 DISK=、TAPE= 或 PIPE=。可以指定一个或多个装置,中间以逗号隔开。如果没有提供 FORM 子句,还原将无法进行,而且仍然会执行回复(除非执行NORECOVERY 选项)。这项技术可以用来将资料库设定为回复模式,而不还原其他附加资料。例如,可以执行多个差异还原操作,然后执行 RESTORE 陈述式,不需要 FORM 子句来将资料库设定为回复模式,就能够启动回复过程。选项选项说明RESTRICTED_USER设定新还原资料库的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成员才能存取该资料库。FILE = file_number如果在储存媒体中有多个备份集,可用来识别所使用的备份集。例如设定该数值为2,则使用磁带上的第二个备份集。PASSWORD = password指定储存备份的密码。MEDIANAME =media_name指定媒体的名称。MEDIAPASSWORD = password指定储存媒体的密码。MOVE logical_file_name TO OS_file_name更改还原档案的位置,例如:MOVE Northwind TO D:dataNorthwind.mdf。如果旧的磁碟无法使用,而需要还原到新的磁碟上时,可以使用这个选项。NORECOVERY |RECOVERY | STANDBY = undo_fileNORECOVERY 指定在还原后,交易将无法退回或重新进行。如果将还原其他的备份(差异式备份或交易记录档备份),则需要用到这个选项。REVOVERY 为预设选项,它指定执行回复操作,并退回每个没有提交的变更。STANDBY 指定在还原需要还原情况下,建立还原(undo)档案。KEEP_REPLICATION 指定当资料库还原时复制设定要保存下来。NOUNLOAD | UNLOAD NOUNLOAD 指定在还原完成后不卸载储存媒体(例如,覆写备份磁带并弹出)。UNLOAD 为预设选项,指定在还原完成后卸载储存媒体。REPLACE 指出即使资料档案已经存在,SQL Server 仍将还原这些档案。现存的档案将被删除和覆写。如果没有指定 REPLACE,那麼 SQL Server 将会核对 database_name 是否已经存在。如果已经存在,那麼将终止还原操作。这个安全特性帮助避免无意地将还原覆写正在工作的资料库。RESTART 指定 SQL Server 在还原操作被中断后重新启动还原操作。STATS = percentage 在还原操作完成了指定的百分率后显示讯息。如果需要监控操作的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南民族大学《现代仪器分析及实验》2023-2024学年第二学期期末试卷
- 吉林交通职业技术学院《媒介批评学B》2023-2024学年第二学期期末试卷
- 保定职业技术学院《数字信号处理实训》2023-2024学年第二学期期末试卷
- 唐山科技职业技术学院《晶体生长原理与技术》2023-2024学年第二学期期末试卷
- 甘肃中医药大学《高分子材料成型模具》2023-2024学年第二学期期末试卷
- 大理大学《C语言》2023-2024学年第二学期期末试卷
- 重庆城市管理职业学院《卫生法学》2023-2024学年第二学期期末试卷
- 阳江职业技术学院《动物生产学牛羊》2023-2024学年第二学期期末试卷
- 西藏大学《建筑安全与技术》2023-2024学年第二学期期末试卷
- 肇庆学院《机器学习算法》2023-2024学年第二学期期末试卷
- 伊犁将军府课件
- 中医护理不良事件
- 初中常见原子团及其化合价、化学式、化学方程式
- 《城市公园配套设施设计导则》
- 供应链安全培训教材课件
- 2024年医院考勤的管理制度
- 卡西欧手表5213(PRG-550)中文说明书
- 2024年度北京市安全员之B证(项目负责人)测试卷(含答案)
- 苹果电脑macOS效率手册
- 2024年新人教版七年级上册数学教学课件 第四章 整式的加减 章末复习
- 卸车工合同协议书
评论
0/150
提交评论