版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、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 注意大小写
2、"select count(*) from sysobjects" 如果在sql2005及以上版本下,把上面脚本的OSQL改为sqlcmd是可以运行的。我使用2008使用OSQL会出现,用SQLCMD代替的提示:-使用工具OSQL:C:UsersAdministrator>osql -? /查看osql用法C:UsersAdministrator>osql -S ZLQ-PC -U sa -P 123 ?Microsoft (R) SQL Server Command Line ToolVersion 10.0.1600.22 NT INTEL X86Copyr
3、ight (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
4、60; -P password -S server -H hostname -E trusted connection -d use database name -l login timeout -t query timeout
5、 -h headers -s colseparator -w columnwidth -a packetsize -e echo input -I Enable Quoted Identifiers -L list
6、servers -c cmdend -D ODBC DSN name -q "cmdline query" -Q "cmdline query" and exit -n remove numbering -m errorlevel -r msgs to stderr
7、60; -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 <EOF&g
8、t; batch processing Auto console width scaling Wide messages default errorlevel is -1 vs 1 -? show syntax summary解释:参数-? 显示 osql 开关的
9、语法摘要。 -L 列出在本地配置的服务器和在网络上广播的服务器的名称。 -U login_id 用户登录 ID。登录 ID
10、; 区分大小写。 -P password 是用户指定的密码。如果未使用 -P 选项,osql 将提示输入密码。如果在命令提示符的末尾使用 -P 选项而不带密码,osql 使用默认密码 (NULL)。密码区分大小写。&
11、#160; OSQLPASSWORD 环境变量使您得以为当前会话设置默认密码。因此,不需要通过硬编码来在批处理文件中设置密码。 如果没有为 -P 选项指定密码,osql 首先检查 OSQLPASSWORD 变量。如果未设置值,osql 使用默认密码
12、160; (NULL)。以下示例在命令提示符处设置 OSQLPASSWORD 变量,然后访问 osql 实用工具: C:>SET OSQLPASSWORD=abracadabra C:>osql -E
13、160; 使用信任连接而不请求密码。 -S server_nameinstance_name 指定要连接的 Microsoft® SQL Server™ 2000
14、60; 实例。在该服务器上指定 server_name 以连接到 SQL Server 的默认实例。在该服务器上指定 server_nameinstance_name 以连接到一个已命名的 SQL Server 2000 的实例。如果未指定服务器,osql 将连接到本地计算机上的 SQL
15、 Server 默认实例。从网络上的远程计算机执行 osql 时,此选项是必需的。 -H wksta_name 是工作站名称。工作站名称存储在 sysprocesses.hostname 中并由 sp_who
16、0; 显示。如果未指定此选项,则采用当前计算机名称。 -d db_name 启动 osql 时发出一个 USE db_name 语句。 -l t
17、ime_out 指定 osql 登录超时之前的秒数。登录到 osql 的默认超时为 8 秒。 -t time_out 指定命令超时之前的秒数。如
18、果未指定 time_out 值,则命令不会超时。 -h headers 指定要在列标题之间打印的行数。默认为每一查询结果集打印一次标题。用 1 指定不打印标题。如果使用 -1,则在参数和设置之间一定不能有空格(可以是 -h-1,不能是
19、60; -h 1)。 -s col_separator 指定列分隔符字符,其默认为空格。若要使用对操作系统有特殊含义的字符(例如 | ; & < >),请将该字符用双引号 (")
20、0; 引起来。 -w column_width 允许用户设置屏幕输出的宽度。默认为 80 个字符。当输出行达到其最大屏幕宽度时,会拆分为多个行。 -a packet_size
21、60; 使您得以请求不同大小的数据包。packet_size 的有效值在 512 到 65535 之间。osql 的默认值为服务器的默认值。数据包大小的增加可以提高较大脚本执行的性能,在这种执行中 GO 命令之间 SQL 语句的数量很重要。Microsoft 的测试表明
22、60; 8192 是大容量复制操作典型的最快设置。可以请求更大的数据包大小,但如果请求不能得到批准,则 osql 默认为服务器的默认值。 -e 回显输入。 -I
23、0; 设置 QUOTED_IDENTIFIER 连接选项为开启。 -D data_source_name 连接到用 Microsoft SQL Server 的 ODBC 驱动程序定义的
24、60; ODBC 数据源。osql 连接使用该数据源中指定的选项。 说明 该选项不适用于其它驱动程序定义的数据源。 -c cmd_end
25、0; 指定命令终止符。默认情况下,通过单独在一行中输入 GO 来终止命令并将其发送到 SQL Server 2000。在重置命令终止符时,不要使用对操作系统有特殊含义的 Transact-SQL 保留字或字符,无论其前面是否有反斜杠。 -q
26、 "query" 启动 osql 时执行查询,但是在查询完成时不退出 osql。(注意查询语句不应包含 GO)。如果从批处理文件中发出查询,请使用 %variables 或环境 %variables%。例如: SET
27、160; table = sysobjects osql /q "Select * from %table%" 将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
28、 -Q "query" 执行查询并立即退出 osql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。 -n 从输入行中删除编号和提示符号 (>)。
29、60; -m error_level 自定义错误信息的显示。显示指定的或更高严重级别错误的消息数、状态和错误级别。不显示严重级别低于指定级别的错误的任何信息。用 -1 指定与消息一起返回所有标题,即使是信息类的消息。如果用 1,则在参数和设置之间不能有空格(可以是 -m-1,不能是 -m -1)。&
30、#160; -r 0 | 1 将消息输出重定向到屏幕 (stderr)。如果未指定参数,或指定参数为 0,则仅重定向严重级别为 17 或更高的错误信息。如果指定参数为 1,则将重定向所有消息输出(包括 "p
31、rint")。 -i input_file 标识包含一批 SQL 语句或存储过程的文件。小于 (<) 比较运算符可以用来代替 i。 -o o
32、utput_file 标识从 osql 接收输出的文件。大于 (>) 比较运算符可以用来代替 o。 如果 input_file 不是 Unicode 并且没有指定
33、 -u,则 output_file 将存储为 OEM 格式。如果 input_file 是 Unicode 或者指定了 -u,则 output_file 将存储为 Unicode 格式。 -p
34、 打印性能统计。 -b 指定发生错误时 osql 退出并返回一个 DOS ERRORLEVEL 值。当 SQL Server 错误信
35、息的严重级别为 10 或更高时,返回给 DOS ERRORLEVEL 变量的值为 1;否则返回 0。Microsoft MS-DOS® 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。 -u
36、 指定 output_file 存储为 Unicode 格式,而不管 input_file 为何种格式。 -R 指定在将货币、日期和时间数据转换为字符数据时
37、 SQL Server ODBC 驱动程序使用客户端设置。 -O 为与 isql 的早期版本行为匹配,指定停用某些 osql 功能。下列功能停用:
38、; EOF 批处理 控制台宽度自动调整 宽信息 同时还将 DOS ERRORLEVEL 的默认值设置为
39、60; 1。 注释 osql 实用工具从操作系统直接启动,并且使用本文中列出的区分大小写的选项。启动后,osql 接受 SQL 语句并将它们交互地发送到 SQL Server。结果被格式化并显示在屏幕上 (stdout)。可使用 QUIT &
40、#160; 或 EXIT 退出 osql。 如果启动 osql 时未指定用户名,SQL Server 2000 将检查环境变量并使用它们,例如 osqluser=(user) 或 osqlserver=(server)。如果未设置环境变量,则使用工作站
41、用户名。如果未指定服务器,则使用工作站名称。 如果 -U 或 -P 选项都没有使用,则 SQL Server 2000 将尝试使用 Windows 身份验证模式进行连接。身份验证基于运行 osql 的 M
42、icrosoft Windows NT® 用户帐户。交互性使用 osql 若要交互性使用 osql,请在命令提示符处键入 osql 命令(以及任何选项)。 可以通过键入类似下行的命令,在包含由 osql 执行的查询的文件(例如
43、; Stores.qry)中进行读取: osql /U alma /P /i stores.qry 该文件必须包含命令终止符。 可以通过键入类似下行的命令,
44、在包含查询的文件(例如 Titles.qry)中进行读取并将结果导向另一文件: osql /U alma /P /i titles.qry /o titles.res 交互性使用 osql
45、160; 时,为把操作系统文件读入到命令缓冲区,可使用:r file_name。不要在文件中包含命令终止符;在完成编辑后交互输入终止符。 举例:C:UsersAdministrator>osql -S ZLQ-PC -U sa -P 123 -q "select count(*) as count from sysobjects" count - 1999(1
46、row affected)/如果想继续执行SQL查询,输入关键字goC:UsersAdministrator>osql -S ZLQ-PC -U sa -P 123 -d test1 -q "select * fromstudent" sno sname sage
47、 ssex - - - - 1 张三 &
48、#160; 1980-01-23 00:00:00.000 男 2 李四 1982-12-12 00:00:00.000 女 3 张飒
49、; 1981-09-09 00:00:00.000 男 4 莉莉
50、0; 1983-03-23 00:00:00.000 女 5 王弼 1982-06-21 00:00:00.000 男 6 王丽
51、160; 1984-10-10 00:00:00.000 女 7 刘香
52、1980-12-22 00:00:00.000 女(7 rows affected)1> select * from teacher2> go / go 是立即执行该缓存语句 tno tname - - 1 张老师 2 王
53、老师 3 李老师 4 赵老师 5 刘老师 6 向老师
54、0; 7 李文静 8 叶平(8 rows affected)1>-使用工具SQLCMD:使用sqlcmd:C:UsersAdministrator>sqlcmd -?Microsoft (R) SQL Server Command Line ToolVersion 10.0.1600.22 NT INTEL X86Copyright (c) Microsoft Corporation. All
55、 rights reserved.usage: Sqlcmd -U login id -P password -S server -H hostname
56、160; -E trusted connection -d use database name -l login timeout -t query timeout -h headers -s colseparator -w screen width -a packetsize
57、 -e echo input -I Enable Quoted Identifiers -c cmdend -Lc list serversclean output -q "cmdline query" -Q "cmdline query&quo
58、t; and exit -m errorlevel -V severitylevel -W remove trailing spaces -u unicode output -r0|1 msgs to stderr -i inputfile -o outputfile
59、0; -z new password -f <codepage> | i:<codepage>,o:<codepage> -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 form
60、at -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:UsersAdministr
61、ator>sqlcmd -S zlq-pc -U sa -P 123 -d test11> select * from teacher2> gotno tname- - 1 张老师 2 王老师
62、60; 3 李老师 4 赵老师 5 刘老师 6 向老师 7 李文静
63、60; 8 叶平(8 rows affected)1>C:UsersAdministrator>sqlcmd -S zlq-pc -U sa -P 1231> use test12> select top 10 * from sc3> goChanged database context to 'test1'.sno cno score
64、- - - 1 1 80 1 2
65、160; 86 1 3 83 1
66、160; 4 89 2 1 50
67、160; 2 2 36 2 4
68、60; 59 3 1 50 3
69、60; 2 96 3 4 69(10 rows affected)1>下面的内容是详细介绍sqlcmd的,有兴趣的
70、朋友可以看看 因为公司的业务需要,所以采集了一个2W多条的数据,都是insert语句,生成一个200多M的数据,谁料在通过sql server 2005不能直接打开,导入也存在问题,用记事本也打不开,复制贴也不行,最后还是一同学提了个醒用命令在dos下执行.sql文件,才有了办法,同时也 在一热心网友的帮助下完成了这个让我头疼半天的活,下面我对这些做一下介绍,应该对有这样需要的朋友很好的帮助。如果装的是2000版的sql那用的命令是osql,05的用sqlcmd其实用法很简单,任何技术,一旦说穿就失去了它的神秘,这有点像生活中的很多事,好了废话了半天,还是切入正题,开工吧
71、:其实就是一句很简单的话句:sqlcmd -i sqlfile.sql -d databasename -s 这个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 "HOM
72、ESQLEXPRESS" -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 sys
73、objects where status >=0 and xtype='P'-1、你可以用SQLCMD执行交互式动作,如:C:sqlcmd>sqlcmd1> SELECT name from sys.databases2> GO你也可以试着键入如下命令,现实服务器列表1>:ServerListSERVERS:WUYZ1>如果想看其他命令的使用,可以键入:Help /?2、执行SQL脚本文件你可以在SQLCMD命令上加入参数I来执行SQL脚本文件,例如:C:sqlcmd>sqlcmd -i test.sql上面的I选项允许你执行一个脚本文
74、件,另外,你也可以指定O选项,把命令的输出导出到指定文件,当然,我们也可以在代码中指定输出结果,如下C:sqlcmd>sqlcmd1> :out output.txt2> :r test.sql3、在脚本中使用变量SQLCMD支持可以在脚本中接收用户传入的变量信息,如下面语句:SET NOCOUNT ONSelect $(Cols) from $(tablename)GO上面语句请求2个参数,我们可以通过指定相应的参数信息传给脚本,如下:C:sqlcmd>sqlcmd -i test.sql -o Output.txt -v cols="name,object
75、_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
76、 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:
77、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 f
78、rom disk='E:工作讯客项目讯客直销代码db20080521'width move "源文件" to "目标文件位置"-使用 T-SQL 执行还原RESTORE 命令有两种形式显示如下:RESTORE DATABASE 还原完整的资料库、档案或档案群组。RESTORE LOG 还原交易记录档。RESTORE 陈述式执行完整资料库还原时 RESTORE 陈述式的语法如下:RESTORE DATABASE database_name FROM backup_device WITH options 这个陈述式只要求资料库的档案名称和备份
79、所在的位置。执行档案和档案群组还原时陈述式的语法如下: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 参数可以是
80、逻辑备份装置名称或实体装置的名称。如果要指定一个实体装置,必须限定它的装置类型也就是说,装置名称前面必须加上 DISK=、TAPE= 或 PIPE=。可以指定一个或多个装置,中间以逗号隔开。如果没有提供 FORM 子句,还原将无法进行,而且仍然会执行回复(除非执行NORECOVERY 选项)。这项技术可以用来将资料库设定为回复模式,而不还原其他附加资料。例如,可以执行多个差异还原操作,然后执行 RESTORE 陈述式,不需要 FORM 子句来将资料库设定为回复模式,就能够启动回复过程。选项选项
81、60; 说明RESTRICTED_USER 设定新还原资料库的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成员才能存取该资料库。FILE = file_number
82、; 如果在储存媒体中有多个备份集,可用来识别所使用的备份集。例如设定该数值为2,则使用磁带上的第二个备份集。PASSWORD = password 指定储存备份的密码。MEDIANAME =media_name 指定媒体的名称。MEDIAPASSWORD = password 指定储存媒体的密码。MOVE 'l
83、ogical_file_name' TO 'OS_file_name'更改还原档案的位置,例如:MOVE 'Northwind' TO 'D:dataNorthwind.mdf'。如果旧的磁碟无法使用,而需要还原到新的磁碟上时,可以使用这个选项。NORECOVERY |RECOVERY | STANDBY = undo_fileNORECOVERY 指定在还原后,交易将无法退回或重新进行。如果将还原其他的备份(差异式备份或交易记录档备份),则需要用到这个选项。REVOVERY 为预设选项,它指定执行回复操作,并退回每个没有提交的变更。ST
84、ANDBY 指定在还原需要还原情况下,建立还原(undo)档案。KEEP_REPLICATION 指定当资料库还原时复制设定要保存下来。NOUNLOAD | UNLOAD NOUNLOAD 指定在还原完成后不卸载储存媒体(例如,覆写备份磁带并弹出)。UNLOAD 为预设选项,指定在还原完成后卸载储存媒体。REPLACE 指出即使资料档案已经存在,SQL Server 仍将还原这些档案。现存的档案将被删除和覆写。如果没有指定 REPLACE,那麼 SQL Server 将会核对 database_name 是否已经存在。如果已经存在,那麼将终止还原操作。这个安全特性帮助避免无意地将还原覆写正在工
85、作的资料库。RESTART 指定 SQL Server 在还原操作被中断后重新启动还原操作。STATS = percentage 在还原操作完成了指定的百分率后显示讯息。如果需要监控操作的过程,这个选项将会很有用。PARTIAL 指定执行部份还原。STOPAT = date_time(log restore only) 指定资料库回复到 data_time 指定时刻的资料状态(只对记录档还原有效)。STOPATMARK = 'mark' 指定还原操作进行到标记处。STOPBEFOREMARK = 'mark' 指定还原操作进行到标记之前。 通
86、过OSQL命令执行SQL SERVER批SQL通过System.Data.SqlClient命名空间只能执行单条SQL,或多个内容中间用;分开,不能执行类似等命令,有没有一种方法能类似查询分析器一样执行一些批命令呢,答案是通过OSQL来执行。OSQL详细用法:通地进程来调用: C#代码 1 / <summary> 2 / 执
87、行OSQL命令 3 / </summary> 4 public static void ExcuteOsqlCmd(string cmd, string errorFile, string filePath) 5
88、0; 6 System.Diagnostics.Process p = new System.Diagnostics.Process(); 7 8 p.StartInfo.FileName = "osql" 9 p.StartInfo.Arguments =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我因幼教而美丽示范演讲稿(3篇)
- 河道保护倡议书
- 2024年全国技术高校(烘焙)职业技能知识考试题库与答案
- 山东省烟台龙口市(五四制)2024-2025学年九年级上学期期中考试化学试题
- 甘肃省多校2024-2025学年高一上学期期中联考语文试卷(含答案)
- 2024-2025学年江阴市花园实验小学四年级上册期中试卷
- 四川省高考语文五年试题汇编-论述类文本阅读
- 实习教师工作职责合同范本
- 广告制作授权合同模板
- 学生安全责任协议书
- 大班数学活动等分课件
- 2024年河南省机场集团有限公司招聘笔试参考题库含答案解析
- 2023-2024学年深圳市初三中考适应性考试语文试题(含答案)
- 人工智能课程中小学生的创新思维培养
- 血液透析高磷的护理查房课件
- 2024年成都交通投资集团招聘笔试参考题库含答案解析
- Unit 3 Sports and Fitness Reading and Thinking 说课稿-2023-2024学年高中英语人教版(2019)必修第一册
- 《复活》教学课件
- 外研社(一年级起点)小学英语四年级上册单词(带音标、词性)
- 光伏电站生产准备大纲全套
- 轮对(车辆构造与检修课件)
评论
0/150
提交评论