3 .8 命令行工具

3 .8 命令行工具
SQL Server 2008提供了相当多的优秀的图形工具,可以用来完成几乎所有需要执行的 任 务 ,但 是有时候简单的命令行工具就是完成工作的最佳工具。市面上目前有一小部分命
令行工具,本节将介绍其中最突出的两个工具—— SQLCMD(以前的OSQL)和 B C P,同时
还 将 介 绍 Microsoft最新的、可能也是最强大的命令行实用 工 具 PowerShelk
3.8.1 SQLCMD
SQLCMD实用工具取代OSQL成为了在命令提示符下执行T-SQL语句、存储过程和
SQL脚本文件的工具。尽管为了向后兼容,OSQL仍可用,但 是 SQLCMD的功能更加完
善。SQLCMD使 用 OLE DB连 接 SQL Server并 执 行 T-SQL批处理。
SQLCMD实用工具可以使用变量、动态连接服务器、查询服务器信息,以及把错误信
息 传 递 回 调 用 环 境 。它 还 提 供 了 访 问 专 用 管 理 员 连 接 (DAC,Dedicated Administrator Connection)的能力。DAC是一个特殊的诊断连接,在其他连接类型不能诊断和纠正服务器错误时,数据库管理员可以用它来连接SQL Server。 SQLCMD支持一些参数,以改变其行为及连接至SQL Server实例的方式。表 3-19是 这些参数的一个简表9 要想了解参数选项的详细列表,可 参阅SQL Server联机丛书中的 “SQLCMD实用工具”主题。SQLCMD命令行参数区分大小写。

SQLCMD实用工具一般用于在批处理过程中执行保存的T-SQL脚本。而 SQLCMD接
受脚本参数的能力使这一 功 能 得 到 进 -步增强。下列代码是一个SQLCMD脚本的例子,
它接受一个名为DBName的参数,用来将指派的数据库备份到C:\SQLBackups文件夹的名
为 DatabasenameDB-Month-Year-Day.BAK 的文件中。
DECLARE @BackupDest AS varchar(255) SET QBackupDest = * C :\SQLBackups\1 +?$(DBName)‘ + * DB-‘
+DATENAME(m,GETDATE()) +DATENAME(dd,GETDATE ⑴ + ?-*
+DATENAME(yy,GETDATE()) + ,.BAK*
BACKUP DATABASE $ (DBName) TO DISK [email protected]
如果上述脚本被保存到C:\SQLBackups文件夹中的BackupDBs.SQL文件中,那么可以
通过下列命令在一个使用Windows身份验证的名为AughtEight的服务器上备份master数 据库:
SQLCMD - E - S AughtEight - i C:\SQLBackups\BackupDBs.SQL - v DBName="Master"
SQL Server Management Studio的 SQLCMD模式使得创建SQLCMD脚本更加简单。
选 择 “查询”菜 单 中 的 SQLCMD模式,就 可 以 使 用 Management Studio编写和测试 BackupDBs.SQL脚本。不过,要 在 “査询编辑器”中完全测试它,必须在脚本开始处插入

下列命令:
:SETVAR DBName= "Master"
SETVAR命令也可在命令行下执行SQLCMD时使用,但使用-v变量参数通常会更有用。 可以使用SETVAR命令设置多个变量,也可以使用-v参数将多个变量传递到一个 SQLCMD脚本中。下面的例子展示了如何使用多个SETVAR命令:

USE AdventureWorks2008
GO
:SETVAR ColumnName "LastNameM :SETVAR TableName "Person.Person"
SELECT $ (ColumnName) FROM $ (TableName)
如果将上述例子保存至GetContacts. SQL文件,并省略SETVAR命令,则该例将如下 所示:
USE AdventureWorks2008
GO
SELECT $ (ColumnName) FROM $ (TableName)
该脚本也可以使用如下命令行通过SQLCMD实用工具执行:
SQLCMD - E - S AughtEight - i C:\GetContacts.SQL - v ColumnName = ‘*LastName"
TableName = "Person.Person"

专用管理员连接(DAC)
当出于管理目的而创建批处理脚本时,SQLCMD相当有用,而且它是唯一一个能够在
紧急情况中诊断并可能改正服务器问题的实用工具。通过使用-A 变量,SQLCMD可利用指
向 SQLServer的独占连接。如果没有其他的连接oj?用,那么SQLCMD-A命令则是诊断服 务器问题和防止数据丢失的最后、也是最可能收到成效的希望。默认情况下只允许启用本
地 的 D A C ,因为DAC组件只侦听回环连接。但是,通过使用sp_configure存储过程并将
remote admin connections选项改为true,可启用远程DAC,如 F面的代码所示。
sp_configure * remote admin connections *, 1
RECONFIGURE

3 .8 .2 大容量复制程序
大容量复制程序(Bulk Copy Program, BCP)实用工具主要用于将平面文件数据导入 SQL Server表、将表导出至平面文件,或者将T-SQL査询的结果导出至平面文件。除此之 外,它还可以用来创建导入导出操作中使用的格式文件。
BCP实用工具的语法如下所示:

usage: bcp {dbtable I query} {in I out | queryout | format) datafile [-m maxerrors] [-f formatfile] [-e errfile】 [-F firstrow] (-L lastrow] [-b batchsize] [-n native type] [-c character type] [-w wide character type] [-N keep non-text native] [-V file format version] [一q quoted identifier] [-C code page specifier] [-t field terminator] [-r row terminator] [-i inputfile] [-o outfile] [-a packetsize) [一S server name] [-U username] [-P password] [-T trusted connection] [-v version] [-R regional enable] [-k keep null values] [-E keep identity values] [-h "load hints‘*] [-x generate xml format file]
BCP格式文件可以创建为两种不同的格式:XML和非XML。这些文件可以在导入和
导出数据中引用。联机丛书上有有关BCP的详细资料,不过下面的例子演示了 BCP最常
见的用法。
1 .非 XML格式文件示例
这个例子显示如何开始一个交互式的BCP会话,由此基于一个已有的表创建一个非
XML格式文件。BCP实用工具会提示输入列数据类型、前缀长度和字段分隔符。一般来
说,S 好接受数据类型和前缀长度的默认设置,因为这些值都是由BCP命令中引用的表决
定的。分隔符值可以是任何字符,但默认是“None”。
下列命令使用B C P ,基于本地默认SQL Server实例的AdventureWorks2008数据库的 Sales架构中的CreditCard表创建了一个格式文件;
BCP AdventureWorks2008 . Sales .CreditCard format nul -T -f C:\BCP\CreditCard.fmt
通常,提供一个-S开关和指定服务器名称会比较好。format参数告诉BCP需要输出的 是一个格式文件。这里没有-x 幵关,说明输出的是非XML格式文件。mil参数发送一个 NULL作为用户名,因为使用的-T开关指出BCP应使用一个Windows信任连接。如果没 有使用-T ,那么需要提供一个-U用户名开关以及-P密码开关。如果没有使用nul, BCP会 因为没有用户名而运行失败。
在接受默认字段数据类型和前缀长度,但输入逗号作为字段分隔符的情况下,上面这
条命令的结果如下所示:
10.0
6
1 SQLINT 0
2 SQLNCHAR 2
3 SQLNCHAR 2
4 SQLTINYINT 0
5 SQLSMALLINT 0
6 SQLDATETIME 0
o
4 o1 5o 12 8
" 1 CreditCardID "" " 2 CardType SQL_Latinl_General_CPl_CI_AS ?‘ 3 CardNumber SQL一Latinl__General_CPl 一CI 一AS " 4 ExpMonth "” " 5 Exp Year ",? ” 6 ModifiedDate ""
结果顶部的“ 10.0” 指 定 BCP的版本。“ 10.0” 表 示 SQL Server 2008, “9.0” 表 示 SQL
Server 2005。“ 10.0” 下面的数字6 表示该文件中有多少列。紧跟在列编号后面的是该列的 SQL Server数据类型,其后是前缀长度需要的字节数。列的前缀长度取决于最大字节数、 列是否支持NULL,以及存储类型。

原文地址:https://www.cnblogs.com/zhouwansheng/p/9272935.html

时间: 2024-10-27 12:20:17

3 .8 命令行工具的相关文章

Vue命令行工具vue-cli

前面的话 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构建配置的项目 .本文将详细介绍Vue命令行工具vue-cli 概述 Vue-cli是Vue官方提供的用于初始化Vue项目的脚手架工具.使用Vue-cli有以下几大优势 1.Vue-cli是一套成熟的vue项目架构设计,会跟着Vue版本的更迭而更新 2.Vue-cli提供了一套本地的热加载的

MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具

这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具:mssql-scripter.它支持在SQL Server.Azure SQL DB以及Azure SQL DW中为数据库生成CREATE和INSERT T-SQL脚本. Mssql-scripter是一个跨平台的命令行工具,功能等同于SQL Server Management Studio中的Generate and Publish Scripts Wizard. 咱们能够在Linux.macOS和Windows上使用它

windows下的命令行工具babun

什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是A Windows shell you will love! babun的几个特点 使用babun无需管理员权限先进的安装包管理器(类似于linux上面的apt-get或yum)预先配置了Cygwin和很多插件拥有256色的兼容控制台HTTP(S)的代理支持面向插件的体系结构可以使用它来配置你的gi

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控

附录一 6. 使用命令行工具

附录一 6. 使用命令行工具 在 Windows 的 Server Core 模式,由于没有图形界面,必须通过命令行配置 Windows 防火墙. 6.1 启用一个程序 netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes netsh advfirewall firewall add r

C#的命令行工具

?在最开始学java的时候我们一般用 记事本 + 命令行,在命令行里边进行编译和运行, C#也有类似的东西(csc工具),在学习C#语言的时候可以用 文本编辑器来编写代码,然后用C#的命令行工具来编译和运行 这个命令行工具的位置在: 开始-->所有程序-->Microsoft Visual Studio 2012 -->-->Visual Studio Tools --> VS2012开发人员命令提示 执行 csc  源代码.cs 这样就会在源代码的相同目录生成可执行文件

监控 Linux 性能的 18 个命令行工具

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具. LitStone翻译于 2个月前 3人顶

20个命令行工具监控 Linux 系统性能(转载)

1. top — Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以定期显示所有正在运行和实际运行并且更新到列表中,它显示出 CPU 的使用.内存的使用.交换内存.缓存大小.缓冲区大小.过程控制.用户和更多命令.它也会显示内存和 CPU 使用率过高的正在运行的进程.当我们对 Linux 系统需要去监控和采取正确的行动时,top 命令对于系统管理员是非常有用的.让我们

Drupal 8 Console 命令行工具

转载:https://yplam.com/post/79 Drupal Console 是面向Drupal 8 的一套命令行工具,用来生成Drupal 8模板代码,并且可以跟Drupal 8应用进行交互. Drupal Console 与大家熟知的Drush有点类似,但提供不一样的功能,它可以跟Drush结合使用. 安装 $ curl -LSs http://drupalconsole.com/installer | php windows下: php -r "readfile('http://

ImageMagick命令行工具

[关于ImageMagick] [命令行工具] [源码安装] [二进位发布版本] [资源配置文件] [相关下载] ImageMagick命令行工具 [ convert | identify | mogrify | composite | montage | compare | display | animate | import | conjure ] ImageMagick 包括一组命令行工具来操作图片.你大部份习惯每次编辑图片都提供图形用户接口 (GUI) 编辑图像就像GIMP和PhotoS