命令提示实用工具入门

在运行 Microsoft Windows® 2000、Microsoft Windows NT®、Microsoft Windows 95 或 Microsoft Windows 98 的计算机上安装 Microsoft® SQL Server™ 2000 实用工具时，将自动安装命令提示实用工具。下表显示这些实用工具及其安装目录。

目录 | 实用工具
x:\Program Files\Microsoft SQL Server\MSSQL\Binn1 | bcp2 console isql2 sqlagent sqldiag sqlmaint sqlservr vswitch
x:\Program Files\Microsoft SQL Server\80\Tools\Binn | bcp2 dtsrun dtswiz isql2 isqlw itwiz odbccmpt osql rebuildm sqlftwiz
x:\Program Files\Microsoft SQL Server\80\Com | distrib3 logread3 replmerg3 snapshot3
x:\Program Files\Common Files\Microsoft Shared\Service Manager | scm
x:\Program Files\Common Files\Microsoft Shared\??? | regxmlss

1 MSSQL 是 SQL Server 2000 默认实例的目录名。对于每个 SQL Server 2000 的命名实例，相应的目录名是 MSSQL$instance_name。
2 bcp 和 isql 实用工具安装在 \MSSQL\Binn 目录和 \80\Tools\Binn 目录中，同时也安装在每个 SQL Server 2000 命名实例的 \MSSQL$instance_name\Binn 目录中。这些实用工具的任何复本可以用来连接到任何 SQL Server 实例。由服务器参数决定每个实用工具连接到的 SQL Server 实例。您可以不受限制地连接到与运行该实用工具的目录相对应的 SQL Server 实例。
3 这些是四个复制代理程序实用工具的文件名。

在安装过程中，x:\Program Files\Microsoft SQL Server\80\Tools\Binn 目录被添加到系统路径中。可以在任何命令提示符下，从该目录中运行实用工具。对于不在 80\Tools\Binn 目录中的实用工具，必须在命令提示符下从安装目录中运行实用工具或者显式指定路径。

下列实用工具不再由 SQL Server 2000 安装程序安装。

  • makepipe 实用工具

  • odbcping 实用工具

  • readpipe 实用工具

如果需要运行这些实用工具，可以从 SQL Server 2000 光盘上的 x:\x86\Binn 目录运行它们，或将它们手工复制到计算机中。


命令提示实用工具语法规则

规范 | 用于
大写 | 在操作系统级别使用的语句和术语。
等宽字体
 示例命令和程序代码。
斜体 | 用户提供的参数。
加粗 | 命令、参数和其它必须严格按所给形式键入的语法。


bcp 实用工具

bcp 实用工具在 Microsoft® SQL Server™ 2000 实例和数据文件之间以用户指定的格式复制数据。

语法

bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-m max_errors] [-f format_file] [-e err_file]
    [-F first_row] [-L last_row] [-b batch_size]
    [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
    [-q] [-C code_page] [-t field_term] [-r row_term]
    [-i input_file] [-o output_file] [-a packet_size]
    [-S server_name[\instance_name]] [-U login_id] [-P password]
    [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]

参数

database_name

指定的表或视图所在数据库的名称。如果未指定，则为用户默认数据库。

owner

表或视图所有者的名称。如果执行大容量复制操作的用户拥有指定的表或视图，则 owner 是可选的。如果没有指定 owner 并且执行大容量复制操作的用户不拥有指定的表或视图，则 Microsoft® SQL Server™ 2000 将返回错误信息并取消大容量复制操作。

table_name

是将数据复制到 SQL Server 时 (in) 的目的表名，以及从 SQL Server 复制数据时 (out) 的源表名。

view_name

是将数据复制到 SQL Server 时 (in) 的目的视图名，以及从 SQL Server 复制数据时 (out) 的源视图名。只有其中所有列都引用同一个表的视图才能用作目的视图。有关将数据复制到视图的限制的更多信息，请参见 INSERT。

Query

是返回一个结果集的 Transact-SQL 查询。如果查询返回多个结果集，例如指定 COMPUTE 子句的 SELECT 语句，只有第一个结果集将复制到数据文件，随后的结果集被忽略。使用双引号引起查询语句，使用单引号引起查询语句中嵌入的任何内容。在从查询中大容量复制数据时，还必须指定 queryout。

in | out | queryout | format

指定大容量复制的方向。in 是从文件复制到数据库表或视图，out 是指从数据库表或视图复制到文件。只有从查询中大容量复制数据时，才必须指定 queryout。根据指定的选项（-n、-c、-w、-6 或 -N）以及表或视图分隔符，format 将创建一个格式文件。如果使用 format，则还必须指定 -f 选项。

说明 Microsoft SQL Server 6.5 中的 bcp 实用工具不支持大容量复制到包含 sql_variant 或 bigint 数据类型的表。

data_file

大容量复制表或视图到磁盘（或者从磁盘复制）时所用数据文件的完整路径。当将数据大容量复制到 SQL Server 时，此数据文件包含将复制到指定表或视图的数据。当从 SQL Server 大容量复制数据时，该数据文件包含从表或视图复制的数据。路径可以有 1 到 255 个字符。

-m max_errors

指定在大容量复制操作取消之前可能产生的错误的最大数目。bcp 无法复制的每一行都将被忽略并计为一个错误。如果没有包括该选项，则默认为 10。

-f format_file

指定格式文件的完整路径，该格式文件包含以前在同一个表或视图上使用 bcp 时的存储响应。当使用由 format 选项所创建的格式文件大容量复制入或复制出数据时，使用此选项。格式文件的创建是可选的。在提示几个格式问题之后，bcp 将提示是否在格式文件中保存回答。默认文件名为 Bcp.fmt。大容量复制数据时，bcp 可引用一个格式文件，因此不必重新交互输入以前的回答。如果未使用此选项，也没有指定 –n、-c、-w、-6 或 -N，则 bcp 将提示输入格式信息。

-e err_file

指定错误文件的完整路径，此错误文件用于存储 bcp 无法从文件传输到数据库的所有行。来自 bcp 的错误信息将发送到用户工作站。如果未使用此选项，则不创建错误文件。

-F first_row

指定要大容量复制的第一行的序数。默认值是 1，表示在指定数据文件的第一行。

-L last_row

指定要大容量复制的最后一行的序数。默认值是 0，表示指定数据文件中的最后一行。

-b batch_size

指定所复制的每批数据中的行数。每个批处理作为一个事务复制至服务器。SQL Server 提交或回滚（在失败时）每个批处理的事务。默认情况下，指定的数据文件中的所有数据都作为一批复制。请不要与 -h "ROWS_PER_BATCH = bb" 选项一起使用。

-n

使用数据的本机（数据库）数据类型执行大容量复制操作。此选项不提示输入每一字段，它将使用本机值。

-c

使用字符数据类型执行大容量复制操作。此选项不提示输入每一字段；它使用 char 作为存储类型，不带前缀，\t（制表符）作为字段分隔符，\n（换行符）作为行终止符。

-w

使用 Unicode 字符执行大容量复制操作。此选项不提示输入每一字段；它使用 nchar 作为存储类型，不带前缀，\t（制表符）作为字段分隔符，\n（换行符）作为行终止符。不能在 SQL Server 6.5 版或更早版本中使用。

-N

对非字符数据使用数据的本机（数据库）数据类型和对字符数据使用 Unicode 字符类型执行大容量复制操作。这是可替代 -w 选项的性能更高的选项，其目的是使用数据文件将数据从一个 SQL Server 传输到另一个 SQL Server 中。它不提示输入每一字段。在需要传输包含 ANSI 扩展字符的数据以及想利用本机模式的性能时，可以使用这一选项。不能在 SQL Server 6.5 版或更早版本中使用 -N 选项。

-V (60 | 65 | 70)

使用 SQL Server 早期版本中的数据类型执行大容量复制操作。此选项与字符 (-c) 或本机 (-n) 格式一起使用。此选项并不提示输入每一字段，它使用默认值。例如，若要将 SQL Server 6.5 中的 bcp 实用工具所支持（但 ODBC 不再支持）的日期格式大容量复制到 SQL Server 2000，可使用 -V 65 参数。

重要 将数据从 SQL Server 大容量复制到数据文件时，即使指定了 –V，bcp 实用工具也不会为任何 datetime 或 smalldatetime 数据生成 SQL Server 6.0 或 SQL Server 6.5 的日期格式。日期将始终以 ODBC 格式写入。另外，由于 SQL Server 6.5 版或更早版本不支持可为空的 bit 数据，因此 bit 列中的空值写为值 0。

-6

使用 SQL Server 6.0 或 SQL Server 6.5 数据类型执行大容量复制操作。仅为保持向后兼容性。改为使用 –V 选项。

-q

在 bcp 实用工具和 SQL Server 实例的连接中执行 SET QUOTED_IDENTIFIERS ON 语句。使用该选项指定包含空格或引号的数据库、所有者、表或视图的名称。将由三部分组成的整个表名或视图名引在双引号 (" ") 中。

-C code_page

仅为保持向后兼容性。作为代替，请在格式文件或交互式 bcp 中为每一列指定一个排序规则名。

指定数据文件中的数据代码页。只有当数据中包含字符值大于 127 或小于 32 的 char、varchar 或 text 列时，code_page 才有用。

代码页值 | 描述
ACP | ANSI/Microsoft Windows® (ISO 1252)。
OEM | 客户程序使用的默认代码页。如果未指定 -C，则这是 bcp 使用的默认代码页。
RAW | 不发生从一个代码页到另一个代码页的转换。因为不发生转换，所以这是最快的选项。
<值> | 特定的代码页号码，例如 850。

-t field_term

指定字段终止符。默认的字段终止符是 \t（制表符）。使用此参数替代默认字段终止符。

-r row_term

指定行终止符。默认的行终止符是 \n（换行符）。使用此参数替代默认行终止符。

-i input_file

指定响应文件的名称，使用交互模式（未指定 –n、-c、-w、-6 或 -N）执行大容量复制时，响应文件包含对每一字段命令提示问题的响应。

-o output_file

指定接收 bcp 输出（从命令提示重定向）的文件的名称。

-a packet_size

指定发送到和发送自服务器的每个网络数据包的字节数。可以使用 SQL Server 企业管理器（或 sp_configure 系统存储过程）设置服务器配置选项。但是，使用此选项可以单个地替代服务器配置选项。packet_size 可以设置为 4096 到 65535 字节，默认值为 4096。

数据包大小的增加能够提高大容量复制操作的性能。如果要求一个较大的数据包而得不到，则使用默认设置。bcp 生成的性能统计显示出所使用数据包的大小。

-S server_name[\instance_name]

指定要连接到的 SQL Server 实例。指定 server_name 以连接该服务器上的 SQL Server 默认实例。指定 server_name\instance_name 以连接到该服务器上的 SQL Server 2000 命名实例。如果未指定服务器，则 bcp 连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 bcp 时，要求此选项。

-U login_id

指定用于连接到 SQL Server 的登录 ID。

-P password

指定登录 ID 的密码。如果未使用此选项，则 bcp 将提示输入密码。如果不带密码将此选项用于命令提示行末尾，则 bcp 将使用默认密码 (NULL)。

-T

指定 bcp 使用网络用户的安全凭据，通过信任连接连接到 SQL Server。不需要 login_id 和 password。

-v

报告 bcp 实用工具的版本号和版权。

-R

指定使用为客户端计算机的区域设置定义的区域格式，将货币、日期和时间数据大容量复制到 SQL Server 中。默认情况下，将会忽略区域设置。

-k

指定在大容量复制操作中空列应保留一个空值，而不是对插入的列赋予默认值。

-E

指定标识列的值出现在要导入的文件中。如果没有给出 -E，则正导入的数据文件中此列的标识值将被忽略，而且 SQL Server 2000 会根据创建表期间指定的种子值和增量值自动指派唯一的值。如果数据文件的表或视图中不包含标识列的值，则使用格式文件指定导入数据时应跳过表或视图中的标识列；SQL Server 2000 将自动为该列指派唯一值。有关详细信息，请参见 DBCC CHECKIDENT。

-h "hint [,...n]"

指定在大容量复制数据到表或视图时所使用的提示。在大容量复制数据到 SQL Server 6.x 或更早版本时，不能使用此选项。

提示 | 描述
ORDER (column [ASC | DESC] [,...n]) | 数据文件中数据的排序次序。如果要装载的数据已根据表中的聚集索引排序，则会提高大容量复制的性能。如果数据文件按不同次序排序，或者该表没有聚集索引，则将忽略 ORDER 提示。所提供的列名必须是目的表中的有效列。默认情况下，bcp 假设数据文件没有排序。
ROWS_PER_BATCH = bb | 每批中数据的行数（即 bb）。在未指定 -b 时使用，这将使整个数据文件作为单个事务发送到服务器。服务器根据值 bb 优化大容量装载。默认情况下，ROWS_PER_BATCH 未知。
KILOBYTES_PER_BATCH = cc | 每批中数据的千字节 (KB) 近似数量（即 cc）。默认情况下，KILOBYTES_PER_BATCH 未知。
TABLOCK | 大容量复制操作期间将获取表级锁。由于只在大容量复制操作期间才控制锁减少了表中锁的争夺，因此此提示可以显著提高性能。如果表没有索引并且指定了 TABLOCK，则该表可以同时由多个客户端装载。默认情况下，锁定行为是由表选项 table lock on bulk load 决定的。
CHECK_CONSTRAINTS | 大容量复制操作期间，将检查目的表上的所有约束。默认情况下，将会忽略约束。
FIRE_TRIGGERS | 与 in 参数一起指定，在目的表上定义的任何插入触发器将在大容量复制操作期间执行。如果没有指定 FIRE_TRIGGERS，则不执行插入触发器。对于 out、queryout 和 format 参数，将忽略 FIRE_TRIGGERS。

注释

将忽略要导入的数据文件中计算列或 timestamp 列的值，SQL Server 2000 自动赋值。如果数据文件不包含表中的计算列或 timestamp 列的值，可用格式文件指定应在导入数据时跳过表中的计算列和 timestamp 列；SQL Server 将自动为该列赋值。

计算列和 timestamp 列照常会从 SQL Server 大容量复制到一个数据文件。

SQL Server 标识符（包括数据库名称、表名或视图名、登录和密码）可以包含诸如嵌入空格和引号等字符。当在命令提示符处指定包含空格或引号的标识符或文件名时，需要将该标识符引在双引号 (" ") 内。另外，对于包含嵌入空格或引号的所有者、表或视图的名称，可以指定 -q 选项，或者将所有者、表或视图的名称在双引号内用方括号 ([ ]) 括起来。

例如，Northwind 数据库内有表 Jane's Orders，该表由用户 Jane Doe 所拥有。若要使用登录 Jane Doe 和密码 go dba 将该表从 Northwind 数据库大容量复制到 Orders.txt 文件，请执行下列命令之一：

bcp "Northwind.Jane Doe.Jane's Orders" out "Jane's Orders.txt" -c -q -U"Jane Doe" -P"go dba"

bcp "Northwind.[Jane Doe].[Jane's Orders]" out "Jane's Orders.txt" -c -U"Jane Doe" -P"go dba"

若要指定包含空格或引号的数据库名称，必须使用 -q 选项。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

在不同排序规则间复制数据

使用 bcp 和 BULK INSERT

并行数据装载

SET QUOTED_IDENTIFIER

sp_tableoption

使用格式文件


console 实用工具

当备份到磁带转储设备或从中还原时，console 命令提示实用工具将显示备份或还原消息，供负责备份和还原数据库的人员使用。

语法

console [/S server_name[\instance_name]] [/P pipe_name]

参数

/S server_name[\instance_name]:

是要连接到的 Microsoft® SQL Server™ 2000 实例的名称。在该服务器上指定 server_name 以连接到 SQL Server 的默认实例。在该服务器上指定 server_name\instance_name 以连接到一个已命名的 SQL Server 2000 的实例。如果未指定服务器，则 console 实用工具连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 console 实用工具时，要求此选项。

/P pipe_name:

是用于启动服务器的管道。

注释

只有 console 实用工具正在运行，BACKUP 或 RESTORE 语句才可以用于磁带转储设备。

因为 console 工作站（可以是任何屏幕组）为操作员显示提示和消息，所以请在运行 Microsoft SQL Server 实例的同一 Microsoft Windows NT® 工作站的窗口中运行它。

如果同时使用两个磁带（即两个备份或还原），则只需要一个控制台。程序一次输出一个消息，在显示下一个提示之前等待响应。因此，消息中包含这些消息所属的物理驱动器的名称。

若要停止磁带备份或还原，请对任何提示都输入 n 作为响应以安装新的磁带。

console 实用工具使用命名管道。若要将 console 用于其它管道，必须使用 SQL Server 客户端网络实用工具建立连接。

说明 如果 console 实用工具已启动并显示为不可用，请等待一分钟并再试一次（SQL Server 2000 可能正在修理中断的 console 连接）。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。


dtsrun 实用工具

dtsrun 实用工具执行用数据转换服务 (DTS) 创建的包。DTS 包可存储在 Microsoft® SQL Server™ 2000 msdb 数据库、COM 结构化存储文件或 SQL Server Meta Data Services 中。

语法

dtsrun
[/?]|
[
[
/[~]S server_name[\instance_name]
{ {/[~]U user_name [/[~]P password]} | /E }
]
{
{/[~]N package_name }
| {/[~]G package_guid_string}
| {/[~]V package_version_guid_string}
}
[/[~]M package_password]
[/[~]F filename]
[/[~]R repository_database_name]
[/A global_variable_name:typeid=value]
[/L log_file_name]
[/W NT_event_log_completion_status]
[/Z] [/!X] [/!D] [/!Y] [/!C]
]

参数

/?

显示命令提示选项。

~

指定接下来的参数采取十六进制文本表示加密的参数值。可以和 /S、/U、/P、/N、/G、/V、/M、/F 和 /R 选项一起使用。使用加密的值增加了用于执行 DTS 包的命令的安全性，因为服务器名称、密码等等都不可见。使用 /!Y 确定加密的命令。

/S server_name[\instance_name]

指定要连接到的 SQL Server 实例。指定用于连接到该服务器上的 SQL Server 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

/U user_name

是用于连接到 SQL Server 实例的登录 ID。

/P password

是同登录 ID 一起使用的用户指定的密码。

/E

指定信任连接（不需密码）。

/N package_name

当创建 DTS 包时为包所指派的名称。

/G package_guid_string

当创建 DTS 包时指派给它的包 ID。该包 ID 是 GUID。

/V package_version_guid_string

当第一次保存或执行 DTS 包时指派给它的版本 ID。每次修改 DTS 包时都指派给它新的版本 ID。该版本 ID 是 GUID。

/M package_password

当创建 DTS 包时指派给它的可选密码。

/F filename

包含 DTS 包的结构化存储文件的名称。如果也指定了 server_name，则执行从 SQL Server 中检索到的 DTS 包并且将该包添加到结构化存储引擎。

/R repository_database_name

包含 DTS 包的知识库数据库名称。如果没有指定名称，则使用默认的数据库名称。

/A global_variable_name:typeid=value

指定一个包全局变量，其中 typeid = 全局变量数据类型的类型标识符。可以引用整个参数字符串。该参数可重复使用以指定多个全局变量。有关全局变量的各种可用类型标识符的信息，请参见注释部分。

若要使用该命令开关设置全局变量，必须有包的所有者权限或者该包必须已在未启用 DTS 密码保护的状态保存。如果没有所有者权限，可以指定全局变量，但是所用的值将是设置在包中的值，而不是那些用 /A 命令开关指定的值。

/L log_file_name:

指定包日志文件的名称。

/W Windows_Event_Log

指定是否在 Windows 应用程序日志中写入包执行的完成状态。指定 True 或 False。

/Z

指示使用 SQL Server 2000 加密对 dtsrun 命令行进行加密。

/!X

阻塞选定 DTS 包的执行。当想要无须执行包便能创建加密的命令行时，使用该命令参数。如果未指定此选项，则将立即执行 DTS 包。

/!D

从 SQL Server 实例中删除 DTS 包。将不执行此包。从结构化存储文件中删除特定的 DTS 包是不能实现的。需要使用 /F 和 /S 选项重写整个文件。

/!Y

显示用于执行 DTS 包的加密命令，但不执行该命令。

/!C

将用于执行 DTS 包的命令复制到 Microsoft Windows® 剪贴板上。此选项也可与 /!X 和 /!Y 一起使用。

注释

如果未指定任何命令行开关、指定了错误的命令行开关或者命令语句包含语法错误，dtsrun 将返回错误信息及用法说明。如果在命令行中输入不带命令行开关的 dtsrun，则将启动 DTS 运行实用工具。

在命令开关和值之间的空格是可选的。值中嵌入的空格必须嵌入双引号之间。

如果多次指定某个选项，则最后一个为优先。/A 命令开关是个特例。指定多个 /A 开关将创建多个全局变量。

当使用 /A 命令开关指定全局变量时，必须使用类型标识符指明全局变量的数据类型。

正斜线后的 ~ 字符（例如 /~Z）表示参数值已加密，并且后跟加密值的十六进制文本。

下表显示全局变量数据类型及其 ID。

数据类型 | 类型 ID
Integer (small) | 2
Integer | 3
Real (4-byte) | 4
Real (8-byte) | 5
Currency | 6
Date | 7
String | 8
Boolean | 11
Decimal | 14
Integer (1-byte) | 16
Unsigned int (1-byte) | 17
Unsigned int (2-byte) | 18
Unsigned int (4-byte) | 19
Integer (8-byte) | 20
Unsigned int (8-byte) | 21
Int | 22
Unsigned int | 23
HRESULT | 25
Pointer | 26
LPSTR | 30
LPWSTR | 31

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

示例

若要执行保存为 COM 结构化存储文件的 DTS 包，请使用：

dtsrun /Ffilename /Npackage_name /Mpackage_password

若要执行保存在 SQL Server msdb 数据库中的 DTS 包，请使用：

dtsrun /Sserver_name /Uuser_nName /Ppassword /Npackage_name /Mpackage_password

若要执行保存在 Meta Data Services 中的 DTS 包，请使用：

dtsrun /Sserver_name /Uuser_nrame /Ppassword /Npackage_name /Mpackage_password /Rrepository_name

请参见

执行 DTS 包


dtswiz 实用工具

dtswiz 实用工具使用命令提示选项启动 DTS 导入/导出向导。本向导可用以创建数据转换服务 (DTS) 包，该程序包可以在数据源之间导入、导出或转换数据，例如在 Microsoft® SQL Server™ 2000 实例与 Microsoft Access 数据库、ASCII 文本文件或任何 ODBC 数据源之间导入、导出或转换数据。

语法

dtswiz
[/?]|
[
[
{/i | /x}
[/r provider_name]
[/s server_name[\instance_name]]
[/n | /u login_id [/p password]]
[/d database_name]
]
[/f filename]
[/y] [/m]
]

参数

/?

显示命令提示选项。

/i

指定导入 SQL Server 实例。

/x

指定从 SQL Server 实例导出。

/r provider_name:

是提供程序的名称，用于在导入时连接到数据源，或在导出时连接到目的。例如，用于 ODBC 的 Microsoft OLE DB 提供程序是 MSDASQL。

/s server_name[\instance_name]

是用于导出或导入数据的 SQL Server 实例。在该服务器上指定 server_name 以连接到 SQL Server 的默认实例。在该服务器上指定 server_name\instance_name 以连接到一个已命名的 SQL Server 2000 的实例。

/n

指定 Windows 身份验证（不是必需的）。如果使用该参数，则 /n 优先于 /u 和 /p。

/u login_id

是用于连接到 SQL Server 实例的登录 ID。

/p password

是同登录 ID 一起使用的用户指定的密码。

/d database_name

是用于导出或导入数据的 SQL Server 数据库。

/f filename

将向导创建的 DTS 包保存到这个 COM 结构化存储文件中。

/y

隐藏 SQL Server 系统数据库（master、model、msdb、tempdb）。这些数据库不会出现在导入数据时的源数据库列表中，也不会出现在导出数据时的目的数据库列表中。

/m

在主要的包线程上执行所有步骤。有关更多信息，请参见增强 DTS 包的性能。

注释

可以使用任何数目的这些选项作为 dtswiz 命令的参数。DTS 导入/导出向导请求任何未提供的必需值。

所创建的 DTS 包可以保存到 SQL Server msdb 数据库、COM 结构化存储文件或 Microsoft SQL Server 2000 Meta Data Services 中。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

使用 DTS 导入/导出向导创建 DTS 包


isql 实用工具

isql 实用工具使您得以输入 Transact-SQL 语句、系统过程和脚本文件；并且使用 DB-Library 与 Microsoft® SQL Server™ 2000 进行通讯。

语法

isql
    [-?] |
    [-L] |
    [
        {
            {-U login_id [-P password]}
            | -E
 }
[-S server_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] [-x max_text_size]
        [-c cmd_end] [-q "query"] [-Q "query"]
        [-n] [-m error_level] [-r {0 | 1}]
        [-i input_file] [-o output_file] [-p]
        [-b] [-O]
    ]

参数

-?

显示 isql 开关的语法摘要。

-L

列出在本地配置的服务器和在网络上广播的服务器的名称。

-U login_id

用户登录 ID。登录 ID 区分大小写。

-P password

是用户指定的密码。如果未使用 -P 选项，isql 将提示输入密码。如果在命令提示的末尾使用 -P 选项而不带密码，isql 使用默认密码 (NULL)。密码区分大小写。

ISQLPASSWORD 环境变量使您得以为当前会话设置默认密码。因此，不需要通过硬编码来在批处理文件中设置密码。

如果没有为 -P 选项指定密码，isql 首先检查 ISQLPASSWORD 变量。如果未设置值，isql 使用默认密码 (NULL)。以下示例在命令提示处设置 ISQLPASSWORD 变量，然后访问 isql 实用工具：

C:\>SET ISQLPASSWORD=abracadabra
C:\>isql

-E

使用信任连接而不请求密码。

-S server_name

指定要连接到的 SQL Server 默认实例。isql 不支持连接到 SQL Server 2000 命名实例。如果未指定服务器，isql 将连接到本地计算机上的 SQL Server 默认实例。如果要在网络上从远程计算机执行 isql，则需要此选项。

-H wksta_name

是工作站名称。工作站名称存储在 sysprocesses.hostname 中并由 sp_who 显示。如果未指定，则采用当前计算机名称。

-d db_name

启动 isql 时发出一个 USE db_name 语句。

-l time_out

指定 isql 登录超时之前的秒数。如果未指定 time_out 值，则命令无限期地运行。登录到 isql 的默认超时为 8 秒。

-t time_out

指定命令超时之前的秒数。如果未指定 time_out 值，则命令会无限期地运行；登录到 isql 的默认超时为 8 秒。

-h headers

指定要在列标题之间打印的行数。默认为每一查询结果集打印一次标题。使用 –1 指定不打印标题。如果使用 –1，则在参数和设置之间不能有空格（可以是 -h-1，不能是 -h –1）。

-s col_separator

指定列分隔符字符，其默认为空格。若要使用对操作系统有特殊含义的字符（例如 | ; & < >），请将该字符用双引号 (") 引起来。

-w column_width

允许用户设置屏幕输出的宽度。默认为 80 个字符。当输出行达到其最大屏幕宽度时，会拆分为多个行。

-a packet_size

使您得以请求不同大小的数据包。packet_size 的有效值介于 512 和 65535 之间。Microsoft Windows NT® 版中的 isql 默认值为 8192；另外，Microsoft MS-DOS® 版中的 isql 默认值为 512，但在该版本中也可以请求更大的数据包。数据包大小的增加可以提高较大脚本执行的性能，在这种执行中 GO 命令之间 SQL 语句的数量很重要。Microsoft 的测试表明 8192 是大容量复制操作典型的最快设置。可以请求更大的数据包大小，但是如果请求不能得到批准，则 isql 默认为 512。

-e

回显输入。

-x max_text_size

指定返回文本数据的最大长度，以字节为单位。长于 max_text_size 的文本值将被截断。如果未指定 max_text_size，则文本数据在 4096 字节处截断。

-c cmd_end

指定命令终止符。默认情况下，通过单独在一行中输入 GO 来终止命令并将其发送到 SQL Server 2000。在重置命令终止符时，不要使用对操作系统有特殊含义的 Transact-SQL 保留字或字符，无论其前面是否有反斜杠。

-q "query"

启动 isql 时执行查询，但是在查询完成时不退出 isql。（注意查询语句不应包含 GO）。如果从批处理文件中发出查询，可使用 %variables。环境 %variables% 也可用。例如：

SET table = sysobjects
isql /q "Select * from %table%"

将查询用双引号引起来，将查询中嵌入的任何内容用单引号引起来。

-Q "query"

执行查询，在查询完成时立即退出 isql。将查询用双引号引起来，将查询中嵌入的任何内容用单引号引起来。

-n

从输入行中删除编号和提示符号 (>)。

-m error_level

自定义错误信息的显示。显示指定的或更高严重级别错误的消息数、状态和错误级别。不显示严重级别低于指定级别的错误的任何信息。用 -1 指定与消息一起返回所有标题，即使是信息类的消息。如果使用 –1，则在参数和设置之间不能有空格（可以是 -m-1，不能是 -m -1）。

-r {0 | 1}

将消息输出重定向到屏幕 (stderr)。如果未指定参数，或指定参数为 0，那么仅重定向严重级别为 17 或更高的错误信息。如果指定参数为 1，则将重定向所有消息输出（包括 "print"）。

-i input_file

标识包含一批 SQL 语句或存储过程的文件。小于 (<) 比较运算符可以用来代替 –i。

-o output_file

标识从 isql 接收输出的文件。大于 (>) 比较运算符可以用来代替 –o。

-p

打印性能统计。

-b

指定错误发生时 isql 退出并返回一个 DOS ERRORLEVEL 值。当 SQL Server 错误信息的严重级别为 10 或更高时，返回给 DOS ERRORLEVEL 变量的值为 1；否则，返回值为 0。MS-DOS 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。

-O

指定 isql 还原为早期版本的行为。下列功能停用：

  • EOF 批处理

  • 控制台宽度自动调整

  • 宽信息

    该选项还将 DOS ERRORLEVEL 的默认值设置为 –1。

注释

所有 DB-Library 应用程序（如 isql）连接到 SQL Server 2000 后，作为 SQL Server 6.5 级客户端工作。它们不支持 SQL Server 2000 的某些功能。而 osql 实用工具是基于 ODBC 并支持 SQL Server 2000 的全部功能。使用 osql 运行 isql 无法运行的脚本。有关 SQL Server 6.5 级客户端限制的更多信息，请参见 SQL Server 联机丛书中的将早期版本客户端连接到 SQL Server 2000。

默认情况下，SQL 查询分析器将 SQL 脚本保存为 Unicode 文件。isql 实用工具不支持 Unicode 输入文件。尝试在 -i 开关中指定这些文件中的某一个时会导致错误 170：

Incorrect syntax near ' '.

使用 osql 实用工具运行这些 Unicode 文件。另一种方法是在 SQL 查询分析器的"文件/另存为"对话框的"文件格式"列表中指定 ANSI 而非 Unicode。

与大多数 DB-Library 应用程序类似，isql 实用工具在默认情况下不设置任何连接选项。用户如果希望使用特定连接选项设置，必须交互地或在脚本中发出 SET 语句。

isql 实用工具从操作系统直接启动，并且使用本文中列出的区分大小写的选项。启动后，isql 接受 Transact-SQL 语句并将它们交互地发送到 SQL Server 2000。结果将格式化并打印到标准输出设备（屏幕）。可使用 QUIT 或 EXIT 退出 isql。

如果启动 isql 时未指定用户名，则 SQL Server 2000 将检查环境变量并使用它们，如 isqluser=(user) 或 isqlserver=(server)。如果未设置环境变量，则使用工作站用户名。如果未指定服务器，则使用工作站名称。

如果 -U 或 -P 选项都没有使用，则 SQL Server 2000 将尝试使用 Windows 身份验证模式进行连接。身份验证基于运行 isql 的用户的 Windows NT 帐户。

除了 isql 中使用的 Transact-SQL 语句外，下表中的命令也可用。

命令 | 描述
GO | 执行最后一个 GO 命令之后输入的所有语句。
RESET | 清除已输入的所有语句。
ED | 调用编辑器。
!! command | 执行操作系统命令。
QUIT 或 EXIT( ) | 退出 isql。
CTRL+C | 不退出 isql 而结束查询。

仅当命令终止符 GO（默认）、RESET、ED、!!、EXIT、QUIT 和 CTRL+C 出现在一行的开始（紧跟 isql 提示符）时才可以被识别。isql 忽视同一行中这些关键字后输入的任何内容。

GO 表明一批的结束和任何已被高速缓存的 Transact-SQL 语句的执行。在每个输入行的结尾按 ENTER 键，isql 将缓存此行的语句。键入 GO 后按 ENTER 键时，所有当前已被高速缓存的语句将作为一批发送到 SQL Server 2000。

当前的 isql 实用工具工作起来就好像在任何被执行的脚本结尾处都带有隐含的 GO，因而脚本中的所有语句都将执行。除非输出脚本中至少有一个 GO，否则一些早期版本的 isql 将不发送任何语句到服务器。最后一个 GO 后的任何语句都不执行。

通过键入以命令终止符作为开始的行来结束命令。可以在命令终止符后输入一个整数来指定命令运行的次数。例如，若要执行此命令 100 次，请键入：

SELECT x = 1
GO 100

结果在执行结束时打印一次。使用 isql 时，每行字符数目限制为 1000 个。长语句应当跨多个行书写。

通过在行首键入 ED，用户可以在当前查询缓冲区上调用编辑器。编辑器在 EDITOR 环境变量中定义。默认编辑器是 MS-DOS 和 Windows NT 的"edit"。可以通过设置 EDITOR 环境变量来指定其它编辑器。例如，若要将默认编辑器指定为 Notepad，请在操作系统提示符处输入：

SET EDITOR=notepad

有关在何处可以找到或运行该实用工具的更多信息，请参见命令提示实用工具入门。

操作系统命令

通过用两个惊叹号 (!!) 开始一行，然后输入命令的方式，也可以执行操作系统命令。DOSKEY 命令撤回工具可以用来撤回和修改以前在运行 Windows NT 的计算机上输入的 isql 语句。键入 RESET 可以清除现有的查询缓冲区。

在运行存储过程时，isql 在批处理中的每个结果集之间打印一个空行。此外,如果没有应用于已执行的语句，则"0 行受到影响"消息不会出现。

交互性使用 isql

若要交互性使用 isql，请在命令提示符处键入 isql 命令（以及任何选项）。

可以通过键入类似下行的命令，在包含由 isql 执行的查询的文件（例如 Stores.qry）中进行读取：

isql /U alma /P /i stores.qry

该文件必须包含命令终止符。

可以通过键入类似下行的命令，在包含查询的文件（例如 Titles.qry）中进行读取并将结果导向另一文件：

isql /U alma /P /i titles.qry /o titles.res

交互性使用 isql 时，为把操作系统文件读入到命令缓冲区，可使用：r file_name。不要在文件中包含命令终止符；在完成编辑后交互输入终止符。

插入注释

在 isql 提交给 SQL Server 2000 的 Transact-SQL 语句中可以包含注释。允许使用两种注释风格类型：-- 和 /*...*/。

有关更多信息，请参见使用注释。

使用 EXIT 返回 isql 结果

可以使用 SELECT 语句的结果作为 isql 的返回值。第一个结果行的第一列转换为 4 字节的整数（长整型）。MS-DOS 将低字节传递给父进程或操作系统错误级别。Windows NT 则传递整个 4 字节整数。语法为：

EXIT(query)

例如：

EXIT(SELECT @@rowcount)

EXIT(SELECT 5)

也可以包含 EXIT 参数，使其作为批处理文件的一部分。例如：

isql /Q "EXIT(SELECT COUNT(*) FROM '%1')"

isql 实用工具将圆括号 ( ) 中输入的所有内容原样传递给服务器。EXIT( ) 语句可以跨行。如果存储系统过程选择了一个集合并返回一个值，则仅返回选择的内容。在圆括号之间无参数的 EXIT( ) 语句执行批处理中此语句前的所有内容，然后退出，而不返回值。

EXIT 格式有四种：

  • EXIT

    不执行批处理就立即退出，无返回值。

  • EXIT( )

    执行批处理后退出，无返回值。

  • EXIT(query)

    执行包括查询的批处理，返回查询的结果后退出。

  • 状态为 127 的 RAISERROR。

    如果在 isql 脚本中使用 RAISERROR，并且出现状态 127，则 isql 会退出并将消息 ID 返回给客户程序。例如：

    RAISERROR(50001, 10, 127)

    该错误会导致 isql 脚本终止并将消息 ID 50001 返回给客户程序。

SQL Server 保留从 -1 到 -99 的返回值；isql 定义下列值：

  • -100

    选择返回值前遇到的错误。

  • -101

    选择返回值时找不到行。

  • -102

    选择返回值时的转换错误。

请参见

/*...*/（注释）

--（注释）

安全管理

RAISERROR


isqlw 实用工具

isqlw 实用工具（SQL 查询分析器）使您得以输入 Transact-SQL 语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件，可以启动预配置的 SQL 查询分析器。

语法

isqlw
[-?] |
    [
        [-S server_name[\instance_name]]
        [-d database]
        [-E] [-U user] [-P password]
        [{-i input_file} {-o output_file} [-F {U|A|O}]]
        [-f file_list]
        [-C configuration_file]
        [-D scripts_directory]
        [-T template_directory]
    ]

参数

-?

显示用法信息。

-S server_name[\instance_name]：

指定要连接到的 Microsoft® SQL Server™ 2000 实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器，isqlw 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 isqlw 时，此选项是必需的。

-d database

当启动 isqlw 时，发出一个 USE database 语句。默认值为用户的默认数据库。

-E

使用信任连接而不请求密码。

-U user

用户登录 ID。登录 ID 区分大小写。

-P password

是登录密码。默认设置为 NULL。

-i input_file

标识包含一批 SQL 语句或存储过程的文件。必须同时指定 -i 和 -o 选项。如果指定 -i 和 -o 选项，将执行输入文件中的查询，并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后，进程退出。

-o output_file

标识接收来自 isqlw 的输出的文件。必须同时指定 –i 和 –o 选项。如果指定 -i 和 -o 选项，将执行输入文件中的查询，并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后，进程退出。如果未使用 -F 指定文件格式,则输出文件使用与输入文件相同的类型。

-F {U|A|O}

是输入文件和输出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F，则使用自动模式（如果文件标为 Unicode 格式，则以 Unicode 格式打开；否则，以 ANSI 格式打开文件）。

-f file_list

将列出的文件装载到 SQL 查询分析器中。使用 -f 选项，可以装载一个或多个文件（文件名以单个空格分开）。如果指定了多个文件，则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符，如 C:\Test\*.sql 中的星号 (*)。

-C configuration_file

使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。

-D scripts_directory

重写在注册表中或在用 –C 指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值，请单击"工具"菜单，然后单击"选项"命令。

-T template_directory

重写在注册表中或在用 –C 指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值，请单击"工具"菜单，然后单击"选项"命令。

注释

有用户界面或没有用户界面时都可使用 isqlw 实用工具。若要在没有用户界面的情况下运行 isqlw，请指定有效登录信息（具有信任连接或有效登录 ID 及密码的 SQL Server 2000 实例）和输入及输出文件。isqlw 将执行输入文件的内容，并将结果保存到输出文件中。

如果没有指定输入和输出文件，isqlw 将交互运行并启动 SQL 查询分析器。如果指定了有效登录信息，isqlw 将直接连接 SQL Server 2000 实例。如果指定的连接信息不充足，将出现"连接到 SQL Server"对话框。

isqlw 和 SQL 查询分析器使用 ODBC API。该实用工具使用 SQL-92 的 Microsoft® SQL Server ODBC 驱动程序默认设置。有关更多信息，请参见 SQL-92 选项的效果。

有关该实用工具的更多信息，请参见命令提示实用工具入门。

示例
A. 执行 SQL 语句

本例连接到 MyServer（pubs 数据库)，并执行 input_file 中的 SQL 语句，执行结果存储在 output_file 中。

isqlw -S MyServer -d pubs -U sa -P -i input_file -o output_file
B. 使用通配符

本例将所有 .sql 文件装载到 SQL 查询分析器中。所有连接均使用 Windows 身份验证并指向本地服务器上的 pubs 数据库。

isqlw -d pubs -E -f "c:\Program Files\Microsoft SQL Server\MSSQL\Install\*.sql"
C. 装载多个文件

本例将两个文件装载到 SQL 查询分析器中。将使用 Windows 身份验证连接到本地服务器。

isqlw -d pubs -E -f "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instpubs.sql" "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instcat.sql"
D. 使用 Unicode 文件

本例使用 Windows 身份验证连接到 MyServer 上的 pubs 数据库，并执行 Input.sql 文件。结果保存在 Output.txt 文件中。这些文件以 Unicode 文件方式打开。

isqlw -S MyServer -d pubs -E -i input.sql -o output.txt -FU


itwiz 实用工具

itwiz 实用工具允许使用命令提示实用工具来执行索引优化向导。也可以从 SQL Server 企业管理器、SQL 查询分析器和 SQL 事件探查器启动索引优化向导。

语法

itwiz
[-?] |
    [
        -D database_name {-i workload_file | -t workload_trace_table_name}
-o script_file_name
[-S server_name[\instance]]
        {
            {-U login_id [-P password]}
            | -E
     }
[-f tuning_feature_set]
        [-K keep_existing_indexes]
        [-M recommendation_quality]
        [-B storage_bound]
        [-n number_of_queries]
        [-C max_columns_in_index]
        [-T table_list_file]
        [-m minimum_improvement]
        [-F][-v]
    ]

参数

-?

显示用法信息。

-D database_name

指定要优化的数据库名称。

-i workload_file

指定用作优化输入的工作负荷文件名。该文件必须是下列格式的文件之一：.trc（SQL 事件探查器跟踪文件）、.sql（SQL 文件）或 .log（SQL Server 7.0 跟踪文件）。

-t workload_table_name

指定包含用于优化的工作负荷跟踪的表名。将该名称指定为：[server_name].[database_name].[owner_name].table_name。前三个参数是可选的，可通过用句号标记它们的位置将其省略。下表显示每个参数的默认值。

参数 | 默认值
server_name | 用 -S 选项指定的 server_name。如果没有指定 -S 选项，则 server_name 默认为本地计算机。
database_name | 用 -D 选项指定的 database_name。
owner_name | dbo。
table_name | 无。

说明 owner_name 必须是 dbo。如果指定了任何其它值，则 itwiz 的执行将失败并且返回错误。

-o script_file_name

指定 itwiz 将推荐脚本写入的文件名。默认情况下，在当前目录中创建输出文件。推荐脚本包含期望的改进（如果接受推荐）。

-S server_name[\instance]

指定要连接到的计算机和 SQL Server 实例。如果未指定 server_name 或 instance，则 itwiz 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 itwiz 时，此选项是必需的。

-U login_id

指定用于连接到 SQL Server 的登录 ID。

-P password

指定登录 ID 的密码。如果未使用此选项，则 itwiz 将提示输入密码。如果使用该选项但没有指定密码，则 itwiz 使用默认密码 (MULL)。

-E

使用信任连接而不请求密码。

-f tuning_feature_set

指定 itwiz 进行优化时考虑的功能。

值 | 描述
0 | 所有功能（默认）
1 | 仅限索引
2 | 仅限索引视图（仅适用于 SQL Server 2000 企业版和开发版）

-K keep_existing_indexes

指定是否允许 itwiz 提出要求除去一个或多个现有索引的建议。

值 | 描述
0 | 不保留现有索引
1 | 保留所有现有索引（默认）

-M recommendation_quality

指定所期望的运行时间与推荐质量之间的平衡点。recommendation_quality 的值越高，产生的推荐质量越好。目前 recommendation_quality 的值可以是下表所显示的值之一。

值 | 描述
0 | 快速模式
1 | 中等模式（默认）
2 | 彻底分析模式

快速模式目前有以下限制：

  • 不推荐新的聚集索引。

  • 不推荐新的索引视图。

  • 保留所有现有索引（这相当于指定 -K 1 选项）。

    说明 -M 0 -K 0 和 -M 0 -f 2 的组合无效且无法使用。而且与 -M 0 一同使用时，-f 0 选项和 -f 1 选项是等效的。

-B storage_bound

以兆字节为单位指定推荐的索引集可以使用的最大空间。默认存储范围是当前数据大小的三倍，或是所有已连接磁盘驱动器的最大可用空间，或以两者中较小的值为准。当前的数据大小由所有的表和聚集索引组成。

-n number_of_queries

指定要优化的查询数。默认情况下，可以从指定的工作负荷文件中随机选择 200 个查询。如果 number_of_queries 超过了工作负荷文件中的查询数，将优化所有的查询。

-C max_columns_in_index

指定由 itwiz 提出的索引中的最大列数。默认值是 16，这是 SQL Server 所允许的最大值。

-T table_list_file

指定包含要优化的表列表的文件名。文件中列出的每个表应另起一行。表名可由用户名限定（如 dbo.authors）。或者，若要唤醒调用表的伸缩功能，可在表名后加上指出设计的表中行数的数字。表的伸缩功能使得能够在较小规模的示例数据库上研究推荐的索引。对较小的示例数据库应使用合理的大小（若干 %，每表数千行），否则伸缩后的数据分布直方图可能不准确，并且为示例数据库推荐的索引集可能不同于为全规模数据库推荐的索引。

以下是 table_list_file 的文件格式：

[owner.]table [number_of_rows]
[owner.]table [number_of_rows]
  ...    ...       ...

如果省略 –T 选项，则考虑将指定数据库中的所有用户表都进行优化。

-m minimum_improvement

如果指定 -m 选项，则 itwiz 将不推荐索引配置中的任何改变，除非对选定的工作负荷性能的预期改进至少是 minimum_improvement%。如果不考虑优化所有的查询（请参见 –n 选项），则当评估改进时也不考虑未选定的查询。

允许 itwiz 重写现有的输出文件。如果同名的输出文件已经存在且没有指定 –F，itwiz 将返回一个错误。

-v

启用来自 itwiz 的详细输出。如果没有指定 -v，则 itwiz 指示在执行期间仅在屏幕上显示简短信息。

注释

有关该实用工具的更多信息，请参见命令提示实用工具入门。

示例
A. 优化远程实例

下例连接到远程服务器 autoadmin5 上的 tpcd1G 数据库。该连接使用的登录 ID 为 sa，密码为 NULL。

itwiz –S autoadmin5 -U sa –P -D tpcd1G -i tpcd_22.sql –o script.sql
B. 限制磁盘使用

下例将新创建的索引大小限制为 3 GB 且指示输出到 d:\result_dir\script1.sql。

itwiz –D tpcd1G –i tpcd_22.sql -B 3000 –o "d:\result_dir\script1.sql"
C. 限制优化的查询数

下例将从文件 orders_wkld.sql 读取的查询数限制为最多 10 个。

itwiz –D orders –i orders_wkld.sql –o script.sql -n 10
D. 优化特定的表

下例演示 table_list_file（-T 选项）的使用。table_list.txt 的内容指定：

  • 仅优化数据库中的 authors、titles 和 publishers 表。

  • authors 和 titles 表中的行数分别假定为 100,000 和 2,000,000。

  • publishers 中的行数假定为表中的当前行数。
itwiz –D pubs –i pubs_wkld.sql –o script.sql –T table_list.txt

以下是文件 table_list.txt 的内容：

dbo.authors  100000
dbo.publishers
titles  2000000
E. 使用彻底分析模式

下例显示使用彻底分析模式（-M 选项）。

itwiz –D tpcd1G –i tpcd_22query.sql –M 2 –E –o tpcd_22recomm.sql

请参见

索引优化向导


makepipe 实用工具

makepipe 实用工具与 readpipe 一起使用测试网络命名管道服务的完整性。

语法

makepipe [/h] [/w] [/p pipe_name]

参数

/h

显示用法信息。

/w

指定读和写之间的等待时间，以秒为单位。默认值为 0。

/p pipe_name

是管道名称。默认 pipe_name 是 abc。

注释

该诊断实用工具检查命名管道是否正常工作。当无法连接 Microsoft® SQL Server™ 2000 实例时，与 readpipe 一起使用该实用工具。

makepipe 实用工具不由 SQL Server 2000 安装程序安装。可在 SQL Server 2000 光盘上的 x:\x86\Binn 目录下找到该实用工具。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

readpipe 实用工具


odbccmpt 实用工具

odbccmpt 实用工具可启用或禁用 ODBC 应用程序可执行文件的兼容性选项。

语法

odbccmpt file_name [/v:version_number] [/P] [/T] [/R] [/d]

参数

file_name

是将要打开或关闭兼容性选项的应用程序可执行文件的名称。例如，如果可执行文件的完整路径和名称是 C:\Winnt\System32\MyApp.exe，则只需指定 MyApp。不要将 file_name 放在引号中。

请不要为下列项指定可执行文件名称：

  • 任何 Microsoft SQL Server 2000 程序组的应用程序。

  • 任何 SQL Server 2000 命令提示实用工具。

  • SQL Server 可执行文件，Sqlservr.exe。

/v:version_number

指定应用程序应运行在 6.x 或 7.0 兼容模式下。version_number 的允许值是 6 和 7。唤醒调用该选项将请求服务器使用较低级别的协议与应用程序通讯。

/P

在 SQL_ATTR_CONNECTION_DEAD 执行期间请求一个连接峰值调用。对于使用连接池的应用程序，排除该选项将提供很小的性能优势。

/T

指定关闭指定应用程序中的转换。对于使用 SQLDriverConnect 且无法自定义自己的连接属性的应用程序，该选项提供向后兼容性。

/R

指定应用程序应忽略对连接重置的调用。当连接返回连接池时，将使用 SQL_COPT_SS_RESET 调用驱动程序。如果设置了该选项，应用程序将忽略对连接重置的调用。

/d

禁用指定应用程序的指定选项。例如，odbccmpt /P /d 将禁用连接峰值。

注释

6.5/7.0 ODBC 兼容性选项设置 3.7 SQL Server ODBC 驱动程序的某些行为与早期版本的 SQL Server ODBC 驱动程序兼容。只有在使用 3.7 SQL Server ODBC 驱动程序连接到使用早期版本 SQL Server ODBC 驱动程序开发的应用程序的 SQL Server 2000 实例时才需要这样设置。6.5/7.0 ODBC 兼容性选项对使用 ODBC 2.x 或 ODBC 3.x API 的应用程序可以是打开的。

对于使用 3.7 SQL Server ODBC 驱动程序连接到 SQL Server 早期版本的应用程序，不需要运行 odbccmpt。当连接到 SQL Server 早期版本时，3.7 驱动程序自动以兼容模式运行。对于使用早期版本的 SQL Server ODBC 驱动程序连接到 SQL Server 2000 的应用程序，不需要运行 odbccmpt。SQL Server 2000 自动将使用早期驱动程序的任何应用程序作为 6.5 或 7.0 级别的应用程序。

为应用程序启用 6.5 ODBC 兼容性选项导致应用程序被当作 6.5 级别的应用程序。当连接到 SQL Server 2000 的一个实例时，该设置支持 3.7 SQL Server ODBC 驱动程序操作进行这些改变：

  • 该驱动程序对 SQLPrepare 和 SQLExecute 表现 SQL Server 6.5 行为。该驱动程序不使用内置于 SQL Server 2000 中的准备/执行支持。如果打开了生成 SQLPrepare 存储过程的选项，则该驱动程序生成临时存储过程。

  • SET CONCAT_NULL_YIELDS_NULL 选项被关闭。

  • 输入参数可以作为 SQL_PARAM_INPUT_OUTPUT 或 SQL_PARAM_OUTPUT 与 SQLBindParameter 绑定在一起。

  • 驱动程序按和返回到 SQL Server 6.5 客户端结果设置相当的格式返回结果设置：
    • 不将 nchar 和 nvarchar 列中的数据视为 Unicode 数据。相反，使用运行 SQL Server 的服务器上的 Windows 代码页将这些列解释为字符数据。ODBC 目录函数将 nchar、nvarchar 和 uniqueidentifier 列分别报告为 char、varchar 和 varbinary。

    • 不能检索 ntext 列中的数据。

    • 绑定到 SQL_C_DEFAULT 的 nchar 和 nvarchar 列返回字符数据，而不返回 Unicode 数据。

    • 当将超过 255 字节的 char、varchar、binary 和 varbinary 数据值返回应用程序时，将这些数据值按 255 字节截断。超过 255 字节的 nchar 和 nvarchar 数据值将截断为 255 字节的 char 或 varchar 字符。

    • 超过 30 字节的对象名称被截断为 30 字节。

      该截断操作可以影响其它操作，如阻止 SQLSetPos 更新引用的 text 和 image 列。

    • bit 列中的 NULL 值按 0 返回。

      因为在 SQL Server 6.5 中 bit 列不支持空值，目录结果把所有 bit 列显示为非空。

    • uniqueidentifier 列中的数据按 varbinary 数据返回。

    • 无论从连接到 SQL Server 实例的应用程序返回的实际版本字符串如何，SQLGetInfo 的 SQL_DBMS_VER 参数返回的版本字符串中的最终节点从不会超过 255。

    • 驱动程序所支持的数据类型报告的 SQLGetInfo 属性不报告 SQL Server 6.5 以后所引入的新数据类型。

如果设置了 7.0 兼容性，则服务器将使用 7.0 协议与 ODBC 驱动程序通讯。这意味着不会使用包含在准备/执行模型中的增强性能。所有在 SQL Server 2000 中引入的新数据类型（如 sql_variant 和 bigint）将转换为与 7.0 驱动程序支持的类型最匹配的类型。

ODBC 兼容性选项只能在可执行文件的级别上设置。它不能为个别的 DLL 设置。

当运行 odbccmpt 以启用 6.5 ODBC 兼容性选项时，它创建一个注册表键值：

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         MSSQLServer
            Client
               ODBCAppCompat
                  file_name:REG_SZ:6.5

当带参数 -d 运行 odbccmpt 时，将删除该键值。如果带参数 –d 运行 odbccmpt，将不返回错误信息并且没有 file_name 注册表键值。

只要 3.7 SQL Server ODBC 驱动程序连接到 SQL Server 2000，它就检查注册表，查看键值是否和应用程序的可执行文件名称匹配。如果匹配，驱动程序启用 6.5 ODBC 兼容性选项。如果不匹配，不启用 6.5 ODBC 兼容性选项。

说明 大多数 ODBC 应用程序能够从 2.65 SQL Server ODBC 驱动程序转换到 3.7 驱动程序，而不需要任何更改。odbccmpt 是帮助将应用程序从 SQL Server 6.5 移动到 SQL Server 2000 的迁移辅助程序。它只应该用于在转移到 Server 2000 和 3.7 SQL Server ODBC 驱动程序过程中遇到问题的应用程序。应该只使用 odbccmpt，直到应用程序被纠正。

有关此实用工具的位置和运行方式的信息，请参见命令提示实用工具入门。

示例
A. 启用 ODBC 兼容性选项
odbccmpt MyApp /T
odbccmpt MyApp /v:6
B. 禁用 ODBC 兼容性选项
odbccmpt MyApp /T /d


odbcping 实用工具

odbcping 实用工具测试 ODBC 数据源的完整性和客户机连接到服务器的能力。

语法

odbcping
 [/?] |
 [
{
-S server_name[\instance_name]
| -D data_source
}
[-U login_id]
[-P password]
]

参数

/?

显示 odbcping 语法关系图。

-S server_name

是要连接到的 Microsoft® SQL Server™ 2000 实例。指定 server_name 以连接到该服务器上的 SQL Server 2000 默认实例。在该服务器上指定 server_name\instance_name 以连接到一个 SQL Server 2000 的命名实例。进行连接时无需测试任何 ODBC 数据源。

-D data_source

是定义为使用 SQL Server ODBC 驱动程序的 ODBC 数据源的名称。通过使用该名称连接到该数据源中命名的服务器，odbcping 可验证数据源的正确性。

-U login_id

是服务器的有效登录 ID。

-P password

是 login_id 的密码。

注释

如果连接成功，则 odbcping 还会显示 SQL Server ODBC 驱动程序的版本及其连接到的 SQL Server 实例的版本。

如果连接尝试失败，则 odbcping 显示它从 SQL Server ODBC 驱动程序收到的错误信息。

odbcping 实用工具不由 SQL Server 2000 安装程序安装。该实用工具可在 SQL Server 2000 光盘上的 x:\x86\Binn 目录中找到。

示例
A. 使用 odbcping 验证通过数据源的连接
odbcping /DMyDSN /Usa /PsaPassWord
B. 使用 odbcping 验证与服务器的直接连接
odbcping /SMyServer /Usa /PsaPassWord

请参见

连接到 SQL Server 数据源


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_name\instance_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 语句或存储过程的文件。小于 (<) 比较运算符可以用来代替 –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® 批处理文件可以测试 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 实用工具使用 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，说明该值是原样按完整的小数位存储的。

请参见

/*...*/（注释）

--（注释）

CAST 和 CONVERT

安全管理

RAISERROR


重建 master 实用工具

重建 master (rebuildm) 实用工具可用来更改 Microsoft® SQL Server™ 2000 实例的排序规则设置，也可用来修正已损坏的 master 数据库。

语法

rebuildm

注释

运行重建 master 实用工具之前，请确认拥有下列两项之一：

  • 重建数据库对象的脚本和重新装载数据的备份。

  • 与 sp_attach_db 一起使用的数据和日志文件。

重建 master 数据库将删除所有数据库对象和数据。在重建 master 数据库之后，重新创建数据库对象并重新装载数据，或使用 sp_attach_db 重新附加数据和日志文件。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

如何重建 master 数据库（重建 Master 实用工具）


readpipe 实用工具

readpipe 实用工具与 makepipe 一起使用，测试网络命名管道服务的完整性。

语法

readpipe /S server_name /D string [/n] [/q] [/w] [/t] [/p pipe_name] [/h]

参数

/S server_name

是刚运行了 makepipe 的 Microsoft® SQL Server™ 默认实例的名称。readpipe 不支持 SQL Server 2000 命名实例。/S 和 server_name 之间没有空格。

/D string

是一个测试字符串。在 /D 与 string 之间无空格。

/n

指定迭代次数。

/q

外来数据查询（轮询）。如果不含 /q 参数，则 readpipe 读管道并等待数据。

/w

指定轮询时的暂停等待时间，以秒为单位。默认值为 0。

-t

请求 Transact-SQL 命名管道。该选项将取代轮询。

/p pipe_name

是管道名称。默认 pipe_name 是 abc。

/h

显示用法。

注释

该诊断实用工具检查命名管道是否正常工作。如果无法连接到 SQL Server 实例，则使用该实用工具（连同 makepipe 一起使用）。

因为用于 Microsoft Windows NT®、Microsoft Windows® 和 Microsoft MS-DOS® 的应用程序都可运行在 Windows NT 上，所以，必须注意正在运行的 makepipe 和 readpipe 的版本。必须使用在测试命名管道完整性时所用的操作系统的专用版本。

makepipe 启动后，服务器等待客户端的连接。此时可从其它工作站运行 readpipe 命令提示实用工具。当所有的测试完成后，转到运行 makepipe 实用工具的屏幕，并按 CTRL+BREAK 键或 CTRL+C 键以停止执行。

readpipe 实用工具不由 SQL Server 安装程序安装。该实用工具可在 SQL Server 光盘上的 x:\x86\Binn 目录中找到。

请参见

makepipe 实用工具


复制分发代理程序实用工具

复制分发代理程序实用工具配置并启动分发代理程序，后者将保存在分发数据库表（用于事务复制）中的快照（用于快照复制和事务复制）移动到订阅服务器上的目的表。

语法

distrib [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Subscriber server_name[\instance_name]
[-BcpBatchSize bcp_batch_size]
[-Buffers number_of_buffers]
[-CommitBatchSize commit_batch_size]
[-CommitBatchThreshold commit_batch_threshold]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor distributor]
[-DistributorAddress distributor_address]
[-DistributorLogin distributor_login]
[-DistributorNetwork distributor_network]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-ErrorFile error_path_and_file_name]
[-FileTransferType [0|1]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password]
[-FtpPort ftp_port]
[-FtpUserName ftp_user_name]
[-HistoryVerboseLevel [1|2|3]]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads]
[-MaxDeliveredTransactions number_of_transactions]
[-MessageInterval message_interval]
[-NoTextInitOnSync]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-Publication publication]
[-QueryTimeOut query_time_out_seconds]
[-QuotedIdentifier quoted_identifier]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberDB subscriber_database]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password]
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|2|3]]
[-SubscriptionTableName subscription_table]
[-SubscriptionType [0|1|2]]
[-TransactionsPerHistory [0|1|...10000]]

说明 可以按任意顺序指定参数。当未指定可选参数时，则使用本地计算机上预定义的注册表设置中的值。

参数

-?

打印全部可用参数。

-Publisher server_name[\instance_name]:

是发布服务器的名称。指定该服务器上的 Microsoft® SQL Server™ 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-PublisherDB publisher_database:

是发布服务器数据库名称。

-Subscriber server_name[\instance_name]:

是订阅服务器的名称。指定该服务器上的 SQL Server 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-BcpBatchSize bcp_batch_size:

是在一个大容量复制操作中发送的行数。当执行 bcp in 操作时，批处理大小是作为一个事务发送到服务器的行数，也是在分发代理程序记录 bcp 进度信息之前必须发送的行数。在执行 bcp out 操作时，使用的固定批处理大小是 1000。值为 0 表示不记录消息。

-Buffers number_of_buffers:

是可用于异步事务的缓冲区的数量。默认为 2。增加缓冲区的数量可以提高性能，因为这样做可以减少内存换页；然而，大量的缓冲区也增加了为换页而保留的内存数量。通过查看缓冲区值的更改如何影响订阅服务器和分发服务器之间的连接速度，可以评估性能。

-CommitBatchSize commit_batch_size:

是发出 COMMIT 语句前要发给订阅服务器的事务数量。默认值为 100。

-CommitBatchThreshold commit_batch_threshold:

是发出 COMMIT 语句前发给订阅服务器的复制命令的数量。默认值为 1000。

-Continuous:

指定代理程序是否尝试不断轮询重复事务。如果被指定，即使没有事务挂起，代理程序也以轮询间隔轮询源中的重复事务。

-DefinitionFile def_path_and_file_name:

是代理程序定义文件的路径。代理程序定义文件包含该代理程序的命令提示参数。文件内容被作为可执行文件进行分析。双引号 (") 可用来指定包含任意字符的参数值。

-Distributor distributor:

是分发服务器名称。对于分发服务器（强制）分发，该名称默认为本地分发服务器的名称。

-DistributorAddress distributor_address

是在 DistributorNetwork 选项中为 Net-Library 定义的网络连接字符串。如果 DistributorNetwork 选项是 TCP/IP 套接字 Net-Library，那么连接字符串的格式为

'address,socket'

有关格式的更多信息，请参见网络协议。该选项对于通过 Internet 配置连接很有用。

-DistributorLogin distributor_login:

是分发服务器的登录名。

-DistributorNetwork distributor_network:

是连接到分发服务器时使用的 Net-Library。此选项对于配置分发代理程序以通过 Internet 连接到分发服务器很有用。

-DistributorPassword distributor_password:

是分发服务器的密码。

-DistributorSecurityMode [0|1]:

指定分发服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-ErrorFile error_path_and_file_name:

是分发代理程序所生成的错误文件的路径和文件名。一旦复制事务应用到订阅服务器失败，该文件就会生成。该文件包含失败的复制事务及相关的错误信息。当未被指定时，此错误文件在分发代理程序的当前目录生成。错误文件名是分发代理程序名加扩展名 .err。如果指定的文件名已经存在，则将在此文件中追加错误信息。

-FileTransferType [0|1]

指定文件传输类型。数值 0 表示 UNC（通用命名规则），数值 1 表示 FTP（文件传输协议）。

-FtpAddress ftp_address

是分发服务器 FTP 服务的网络地址。当未指定时，使用 DistributorAddress。如未指定 DistributorAddress，则使用 Distributor。

-FtpPassword ftp_password

是用于连接到 FTP 服务的用户密码。

-FtpPort ftp_port

是分发服务器 FTP 服务的端口号。当未指定时，使用 FTP 服务的默认端口号 (21)。

-FtpUserName ftp_user_name

是用于连接到 FTP 服务的用户名。当未指定时，使用匿名用户。

-HistoryVerboseLevel [1|2|3]

指定分发操作中记录的历史日志记录数量。选择 1 可以将历史日志记录对性能的影响减到最小。

HistoryVerboseLevel 值 | 描述
1 | 默认值。始终更新同一状态（启动、进度、成功等等）的以前的历史消息。如果没有相同状态的前一条记录存在，将插入一条新记录。
2 | 除非该记录是为闲置消息或长期运行的作业消息而设（在这种情况下，更新以前的记录），否则插入新的历史记录。
3 | 除非是闲置消息记录，否则始终插入新记录。

-LoginTimeOut login_time_out_seconds

是登录超时之前经过的秒数。默认设置为 15 秒。

-MaxBcpThreads

指定可以并行执行的大容量复制操作的数量。同时存在的线程和 ODBC 连接的最大数量小于 MaxBcpThreads，或小于出现在分发数据库中同步事务中的大容量复制请求的数量。MaxBcpThreads 的值必须大于零，并且没有硬编码限制。默认值为 1。

-MaxDeliveredTransactions number_of_transactions

是在一个同步过程中应用到订阅服务器的强制或请求事务数量的最大值。值为 0 表示对最大的事务数没有限制。订阅服务器可以使用其它值以缩短来自发布服务器的请求同步的持续时间。

-MessageInterval message_interval

是用于历史日志记录的时间间隔。当达到下列一个参数时，将记录历史事件：

  • 上次记录历史事件后，达到 TransactionsPerHistory 值。

  • 上次记录历史事件后，达到 MessageInterval 值。

    如果在源中无可用的重复事务，则代理程序向分发服务器报告一个无事务消息。该选项指定在报告另外一个无事务消息前代理程序等待的时间。代理程序检测到以前处理重复事务之后在源中无可用事务时，将始终报告无事务消息。默认值为 3600（秒）。

-NoTextInitOnSync

指定修改已发布的表中的 text 或 image 列的应用程序在 UPDATE 语句中以 NULL 之外的值初始化指针。

-Output output_path_and_file_name:

是代理程序输出文件的路径。如果未提供文件名，则向控制台发送该输出。如果有指定的文件名，则将输出追加到该文件中。

-OutputVerboseLevel [0|1|2]:

指定该输出是否是详细的。如果详细级别为 0，则仅打印错误信息。如果详细级别为 1，则打印全部进度报告消息。如果详细级别为 2（默认），则打印全部错误信息和进度报告消息，这些信息对于调试很有用。

-PacketSize packet_size:

是数据包的大小，以字节为单位。默认值为 4096（字节）。

-PollingInterval polling_interval:

是为重复事务而查询分发数据库的时间间隔，以秒为单位。默认设置为 3 秒。

-ProfileName profile_name:

指定用于代理程序参数的代理程序配置文件。如果 ProfileName 为 NULL，则禁用该代理程序配置文件。如果未指定 ProfileName，则使用该代理程序类型的默认配置文件。

-Publication publication:

是发布名。该参数仅在发布被设置成始终为新的或重新初始化的订阅提供快照的情况下有效。

-QueryTimeOut query_time_out_seconds:

是查询超时之前经过的秒数。默认设置为 300 秒。

-QuotedIdentifier quoted_identifier:

指定要使用的被引用的标识符字符。值的第一个字符表示分发代理程序使用的值。如果使用无值的 QuotedIdentifier，则分发代理程序使用空格。如果未使用 QuotedIdentifier，则分发代理程序使用订阅服务器所支持的任何被引用的标识符。

-SubscriberDatabasePath subscriber_database_path:

如果 SubscriberType 为 2（不需要 ODBC DSN 即可连接到 Jet 数据库），则是到 Jet 数据库（.mdb 文件）的路径。

-SubscriberDB subscriber_database:

是订阅服务器数据库的名称。

-SubscriberLogin subscriber_login:

是订阅服务器的登录名。如果 SubscriberSecurityMode 为 0（用于 SQL Server 身份验证），则必须指定该参数。

-SubscriberPassword subscriber_password:

是订阅服务器的密码。如果 SubscriberSecurityMode 为 0（用于 SQL Server 身份验证），则必须指定该参数。

-SubscriberSecurityMode [0|1]:

指定订阅服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-SubscriberType [0|1|2|3]

指定分发代理程序所使用的订阅服务器连接的类型。

SubscriberType 值 | 描述
0 | Microsoft SQL Server
1 | ODBC 数据源
2 | Jet 数据库（直接连接）
3 | OLE DB 数据源

-SubscriptionTableName subscription_table

是特定订阅服务器上生成或使用的订阅表的名称。当未指定时，使用 MSreplication_subscription 表。对不支持长文件名的数据库管理系统 (DBMS) 使用此选项。

-SubscriptionType [0|1|2]

指定分发的订阅类型数值 0 表示强制订阅，数值 1 表示请求订阅，数值 2 表示匿名订阅。

-TransactionsPerHistory [0|1|...10000]

指定历史记录的事务间隔。如果在上一个历史记录实例之后提交的事务数量大于此选项，将记录一条历史消息。默认值为 100。数值 0 表示 TransactionsPerHistory 无限大。请参见前面的 -MessageInterval 参数。

注释

重要 如果已安装 SQL Server 代理程序使之在本地系统帐户下运行，而不是在域用户帐户下运行（默认），则该服务只能访问本地计算机。运行于 SQL Server 代理程序下的分发代理程序在登录到 SQL Server 实例时，如果使用 Windows 身份验证模式，则分发代理程序将失败。默认设置是 SQL Server 身份验证。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

分发代理程序配置

复制代理程序


复制日志读取器代理程序实用工具

复制日志读取器代理程序实用工具配置并启动日志读取器代理程序，后者监视被配置为复制的每个数据库的事务日志，并复制被标记为从事务日志复制到分发数据库中的事务。

语法

logread [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
[-Buffers number_of_buffers]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-HistoryVerboseLevel [1|2]]
[-LoginTimeOut login_time_out_seconds]
[-MessageInterval message_interval]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-PublisherSecurityMode [0|1]]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password]
[-QueryTimeOut query_time_out_seconds]
[-ReadBatchSize number_of_transactions]
[-ReadBatchThreshold read_batch_threshold]

说明 可以按任意顺序指定参数。当未指定可选参数时，则使用本地计算机上预定义的注册表设置中的值。

参数

-?

显示用法信息。

-Publisher server_name[\instance_name]

是发布服务器的名称。指定该服务器上的 Microsoft® SQL Server™ 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-PublisherDB publisher_database

是发布服务器数据库名称。

-Buffers number_of_buffers

是可用于异步事务的缓冲区的数量。默认为 2。增加缓冲区的数量可以提高性能，因为这样做可以减少内存换页；然而，大量的缓冲区也增加了为换页而保留的内存数量。通过查看缓冲区值的更改如何影响订阅服务器和发布服务器之间的连接速度，可以评估性能。

-Continuous

指定代理程序是否尝试不断轮询重复事务。如果指定，即使没有事务挂起，代理程序也将以轮询间隔轮询源中的重复事务。

-DefinitionFile def_path_and_file_name

是代理程序定义文件的路径。代理程序定义文件包含该代理程序的命令提示参数。文件内容被作为可执行文件进行分析。双引号 (") 可用来指定包含任意字符的参数值。

-Distributor server_name[\instance_name]

是分发服务器名称。指定该服务器上的 SQL Server 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-DistributorLogin distributor_login

是分发服务器的登录名。

-DistributorPassword distributor_password

是分发服务器的密码。

-DistributorSecurityMode [0|1]

指定分发服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-HistoryVerboseLevel [1|2]

指定日志读取器操作期间记录的历史记录数量。选择 1 可以将历史日志记录对性能的影响减到最小。

HistoryVerboseLevel 值 | 描述
1 | 默认值。始终更新同一状态（启动、进度、成功等等）的以前的历史消息。如果没有相同状态的前一条记录存在，将插入一条新记录。
2 | 除非该记录是为闲置消息或长期运行的作业消息而设（在这种情况下，更新以前的记录），否则插入新的历史记录。

-LoginTimeOut login_time_out_seconds

是登录超时之前经过的秒数。默认设置为 15 秒。

-MessageInterval message_interval

是用于历史日志记录的时间间隔。当达到下列一个参数时，将记录历史事件：

  • 上次记录历史事件后，达到 TransactionsPerHistory 值。

  • 上次记录历史事件后，达到 MessageInterval 值。

    如果在源中无可用的重复事务，则代理程序向分发服务器报告一个无事务消息。该选项指定在报告另外一个无事务消息前代理程序等待的时间。代理程序检测到以前处理重复事务之后在源中无可用事务时，将始终报告无事务消息。默认值为 3600（秒）。

-Output output_path_and_file_name

是代理程序输出文件的路径。如果未提供文件名，则向控制台发送该输出。如果有指定的文件名，则将输出追加到该文件中。

-OutputVerboseLevel [0|1|2]

指定该输出是否是详细的。如果详细级别为 0，则仅打印错误信息。如果详细级别为 1，则打印全部进度报告消息。如果详细级别为 2（默认），则打印全部错误信息和进度报告消息，这些信息对于调试很有用。

-PacketSize packet_size

是数据包的大小，以字节为单位。默认值为 4096（字节）。

-PollingInterval polling_interval

是为重复事务而查询日志的时间间隔（以秒为单位）。默认设置为 10 秒。

-PublisherSecurityMode [0|1]

指定发布服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-PublisherLogin publisher_login

是发布服务器的登录名。

-PublisherPassword publisher_password

是发布服务器的密码。

-QueryTimeOut query_time_out_seconds

是查询超时之前经过的秒数。默认设置为 300 秒。

-ReadBatchSize number_of_transactions

是从源中读取出的事务数量的最大值。对于日志读取器代理程序，源是发布数据库的事务日志。对于分发代理程序，源是分发数据库。默认值为 500。

-ReadBatchThreshold read_batch_threshold

是要从事务日志读取的复制命令的数量，读取是在分发代理程序向订阅服务器发出这些命令之前。默认值为 100。

注释

重要 如果安装 SQL Server 代理程序以本地系统帐户而不是域用户帐户（默认）运行，则该服务只能访问本地计算机。如果将运行于 SQL Server 代理程序下的日志读取器代理程序配置为在登录到 Microsoft® SQL Server™ 时使用 Windows 身份验证模式，则日志读取器代理程序将失败。默认设置为 SQL Server 身份验证模式。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

日志读取器代理程序配置文件

复制代理程序


复制合并代理程序实用工具

复制合并代理程序实用工具配置并启动合并代理程序，后者将保存在数据库表中的初始快照应用于订阅服务器。该代理程序也合并那些创建初始快照之后在发布服务器上发生的增量数据更改，并根据配置的规则或使用创建的自定义冲突解决程序协调冲突。

语法

replmerg [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Publication publication
-Subscriber server_name[\instance_name]
-SubscriberDB subscriber_database
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorAddress distributor_address]
[-DistributorLogin distributor_login]
[-DistributorNetwork distributor_network]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-DownloadGenerationsPerBatch download_generations_per_batch]
[-DownloadReadChangesPerBatch download_read_changes_per_batch]
[-DownloadWriteChangesPerBatch download_write_changes_per_batch]
[-ExchangeType [1|2|3]]
[-FastRowCount [0|1]]
[-FileTransferType [0|1]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password]
[-FtpPort ftp_port]
[-FtpUserName ftp_user_name]
[-HistoryVerboseLevel [1|2|3]]
[-Hostname host_name]
[-LoginTimeOut login_time_out_seconds]
[-Output]
[-OutputVerboseLevel [0|1|2]]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-PublisherAddress publisher_address]
[-PublisherLogin publisher_login]
[-PublisherNetwork publisher_network]
[-PublisherPassword publisher_password]
[-PublisherSecurityMode [0|1]]
[-QueryTimeOut query_time_out_seconds]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberDBAddOption [0|1|2|3]]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|2|3|4|5|6|7|8]]
[-SubscriptionType [0|1|2]]
[-UploadGenerationsPerBatch upload_generations_per_batch]
[-UploadReadChangesPerBatch upload_read_changes_per_batch]
[-UploadWriteChangesPerBatch upload_write_changes_per_batch]
[-Validate [0|1|2|3]]
[-ValidateInterval validate_interval]

说明 可以按任意顺序指定参数。当未指定可选参数时，则使用本地计算机上预定义的注册表设置中的值。

参数

-?

输出全部可用参数。

-Publisher server_name[\instance_name]:

是发布服务器的名称。指定该服务器上的 Microsoft® SQL Server™ 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-PublisherDB publisher_database

是发布服务器数据库名称。

-Publication publication

是发布名。只有当发布被设置为具有可用于新订阅或重新初始化的订阅的快照时，该参数才有效。

-Subscriber server_name[\instance_name]

是订阅服务器的名称。指定该服务器上的 SQL Server 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-SubscriberDB subscriber_database

是订阅服务器数据库名称。

-Continuous

指定代理程序是否尝试不断轮询重复事务。如果被指定，即使没有事务挂起，代理程序也以轮询间隔轮询源中的重复事务。

-DefinitionFile def_path_and_file_name

是代理程序定义文件的路径。代理程序定义文件包含该代理程序的命令提示参数。文件内容被作为可执行文件进行分析。双引号 (") 可用来指定包含任意字符的参数值。

-Distributor server_name[\instance_name]

是分发服务器名称。指定该服务器上的 SQL Server 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。对于分发服务器（强制）分发，该名称默认为本地计算机上的 SQL Server 默认实例名。

-DistributorAddress distributor_address

是在 DistributorNetwork 选项中为 Net-Library 定义的网络连接字符串。如果 DistributorNetwork 选项是 TCP/IP 套接字 Net-Library，则连接字符串的格式为：

'address,socket'

有关格式的更多信息，请参见网络协议。该选项对于通过 Internet 配置连接很有用。

-DistributorLogin distributor_login

是分发服务器的登录名。

-DistributorNetwork distributor_network

是连接到分发服务器时使用的 Net-Library（不含 .dll 扩展名）。该选项在配置合并代理程序通过 Internet 连接到分发服务器时很有用。

-DistributorPassword distributor_password

是分发服务器的密码。

-DistributorSecurityMode [0|1]

指定分发服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），而数值 1 表示 Windows 身份验证模式。

-DownloadGenerationsPerBatch download_generations_per_batch

是在从发布服务器向订阅服务器下载更改时，单个批处理中要处理的生成内容的数量。生成被定义为在每个项目更改的逻辑组。可靠通讯连接的默认为 100。不可靠通讯链接的默认为 10。

-DownloadReadChangesPerBatch download_read_changes_per_batch

是在从发布服务器向订阅服务器下载更改时，单个批处理要读取的更改的数量。默认值为 100。

-DownloadWriteChangesPerBatch download_write_changes_per_batch

是在从发布服务器向订阅服务器下载更改时，单个批处理要应用的更改的数量。默认值为 100。

-ExchangeType [1|2|3]

指定交换类型。数值 1 表示强制交换。数值 2 表示请求交换。数值 3 表示双向交换（默认）。

-FastRowCount [0|1]

指定在行数验证中要使用何种类型的行数计算方法。值为 1（默认值）表示快速方法。值为 0 表示完整的行数计算方法。

-FileTransferType [0|1]

指定文件传输类型。数值 0 表示 UNC（通用命名规则），数值 1 表示 FTP（文件传输协议）。

-FtpAddress ftp_address

是分发服务器 FTP 服务的网络地址。当未指定时，使用 DistributorAddress。如果未指定 DistributorAddress，则使用 Distributor。

-FtpPassword ftp_password

是用来连接到 FTP 服务的用户密码。

-FtpPort ftp_port

是分发服务器 FTP 服务的端口号。当未指定时，使用 FTP 服务的默认端口号 (21)。

-FtpUserName ftp_user_name

是用于连接到 FTP 服务的用户名。当未指定时，使用匿名用户。

-HistoryVerboseLevel [1|2|3]

指定合并操作时记录的历史记录数量。选择 1 可以将历史日志记录对性能的影响减到最小。

HistoryVerboseLevel 值 | 描述
1 | 始终更新同一状态（启动、进度、成功等等）的以前的历史消息。如果没有相同状态的前一条记录存在，将插入一条新记录。
2 | 默认值。除非是诸如空闲消息或长时间运行的作业消息这样的记录，否则插入新的历史记录。在这些情况下，更新前面的记录。
3 | 除非是闲置消息记录，否则始终插入新记录。

-Hostname host_name

是本地计算机的网络名。默认为本地计算机名。

-LoginTimeOut login_time_out_seconds

是登录超时之前经过的秒数。默认设置为 15 秒。

-Output output_path_and_file_name

是代理程序输出文件的路径。如果未提供文件名，则向控制台发送该输出。如果有指定的文件名，则将输出追加到该文件中。

-OutputVerboseLevel [0|1|2]

指定该输出是否是详细的。如果详细级别为 0，则仅输出错误信息。如果详细级别为 1，则输出全部进度报告消息。如果详细级别为 2（默认），则输出全部错误信息和进度报告消息，这些信息对于调试很有用。

-PollingInterval polling_interval

是向发布服务器或订阅服务器查询数据更改的时间间隔，以秒为单位。默认设置为 60 秒。

-ProfileName profile_name

指定用于代理程序参数的代理程序配置文件。如果 ProfileName 为 NULL，则禁用该代理程序配置文件。如果未指定 ProfileName，则使用该代理程序类型的默认配置文件。

-PublisherAddress publisher_address

是在 PublisherNetwork 选项中为 Net-Library 定义的网络连接字符串。如果 PublisherNetwork 选项是 TCP/IP 套接字 Net-Library，则连接字符串的格式为：

'address,socket'

有关格式的更多信息，请参见网络协议。该选项对于通过 Internet 配置连接很有用。

-PublisherLogin publisher_login

是发布服务器的登录名。如果 PublisherSecurityMode 为 0（用于 SQL Server 身份验证模式），则必须指定该参数。

-PublisherNetwork publisher_network

是连接到发布服务器时使用的 Net-Library（不含 .dll 扩展名）。该选项在配置合并代理程序通过 Internet 连接到发布服务器时很有用。

-PublisherPassword publisher_password

是发布服务器的密码。如果 PublisherSecurityMode 为 0（用于 SQL Server 身份验证模式），则必须指定该参数。

-PublisherSecurityMode [0|1]

指定发布服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），而数值 1 表示 Windows 身份验证模式。

-QueryTimeOut query_time_out_seconds

是查询超时之前经过的秒数。默认设置为 300 秒。

-SubscriberDatabasePath subscriber_database_path

如果 SubscriberType 为 2（不需要 ODBC DSN 即可连接到 Jet 数据库），则是到 Jet 数据库（.mdb 文件）的路径。

-SubscriberDBAddOption [0|1|2|3]

指定是否有一个现有的订阅服务器数据库。

SubscriberDBAddOption 值 | 描述
0 | 使用现有的数据库（默认）。
1 | 创建新的空订阅服务器数据库。
2 | 创建新的数据库，并将其附加到指定的文件上。
3 | 创建新的数据库，附加该数据库，并启用文件中可能存在的所有订阅。

说明 当使用数值 2 和 3 时，必须在 SubscriberDatabasePath 选项中指定订阅服务器的数据库路径。

-

SubscriberLogin subscriber_login

是订阅服务器的登录名。如果 SubscriberSecurityMode 为 0（用于 SQL Server 身份验证模式），则必须指定该参数。

-SubscriberPassword subscriber_password

是订阅服务器的密码。如果 SubscriberSecurityMode 为 0（用于 SQL Server 身份验证模式），则必须指定该参数。

-SubscriberSecurityMode [0|1]

指定订阅服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），而数值 1 表示 Windows 身份验证模式。

-SubscriberType [0|1|2|3|4|5|6|7|8]]

指定合并代理程序使用的订阅服务器连接类型。

SubscriberType 值 | 描述
0 | Microsoft SQL Server
1 | ODBC 数据源
2 | Jet 数据库（直接连接）
3 | OLE DB 数据源
4 | Exchange 数据源
5 | Oracle 数据源
6 | DB2 数据源
7 | SSCE 数据源
8 | XML 数据源

-SubscriptionType [0|1|2]

指定分发的订阅类型数值 0 表示强制订阅（默认），数值 1 表示请求订阅，数值 2 表示匿名订阅。

-UploadGenerationsPerBatch upload_generations_per_batch

是在从订阅服务器向发布服务器上载更改时，单个批处理要处理的生成内容数量。生成被定义为在每个项目更改的逻辑组。可靠通讯连接的默认为 100。不可靠通讯连接的默认为 1。

-UploadReadChangesPerBatch upload_read_changes_per_batch

是在从订阅服务器向发布服务器上载更改时，单个批处理要读取的更改的数量。默认值为 100。

-UploadWriteChangesPerBatch upload_write_changes_per_batch

是在从订阅服务器向发布服务器上载更改时，单个批处理要应用的更改的数量。默认值为 100。

-Validate [0|1|2|3]

指定在合并会话结束时是否执行验证以及验证类型（如果执行验证）。

验证值 | 描述
0 | 不验证（默认）。
1 | 只验证行数。
2 | 验证行数和校验值。
3 | 验证行数和二进制校验值。

说明 建议对 SQL Server 2000 使用数值 3，但该值不能用于 SQL Server 的早期版本。

-ValidateInterval validate_interval

是以连续模式验证订阅的时间间隔，以分钟为单位。默认为 60 分钟。

注释

重要 如果安装 SQL Server 代理程序使其运行在本地系统帐户下而不是域用户帐户下（默认），则该服务只能访问本地计算机。如果配置运行于 SQL Server 代理程序下的合并代理程序，使其在登录到 SQL Server 2000 时使用 Windows 身份验证模式，则合并代理程序将失败。默认设置为 SQL Server 身份验证。

有关此实用工具的位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

合并代理程序配置

复制代理程序


复制队列读取器代理程序实用工具

复制队列读取器代理程序实用工具配置并启动队列读取器代理程序，该代理程序读取存储在 SQL Server 队列或 Microsoft 消息队列中的消息，然后将这些消息应用于发布服务器。队列读取器代理程序用于允许排队更新的快照发布和事务发布。

语法

queueread [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
[-Distributor server_name[\instance_name]]

[-DistributionDB distribution_database]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]

[-ResolverState [1|2|3]]
[-HistoryVerboseLevel [1|2]]

[-PollingInterval polling_interval]

[-Continuous]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]

[-LoginTimeOut login_time_out_seconds]
[-QueryTimeOut query_time_out_seconds]

[-DefinitionFile definition_file]

说明 可以按任意顺序指定参数。当未指定可选参数时，则使用本地计算机上预定义的注册表设置中的值。

参数

-?

显示用法信息。

-Publisher server_name[\instance_name]

是发布服务器的名称。指定该服务器上的 Microsoft® SQL Server™ 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-PublisherDB publisher_database

是发布服务器数据库名称。

-Distributor server_name[\instance_name]

是分发服务器名称。指定该服务器上的 SQL Server 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。对于分发服务器（强制）分发，该名称默认为本地计算机上的 SQL Server 默认实例名。

-DistributionDB distribution_database

是分发数据库。

-DistributorLogin distributor_login

是分发服务器的登录名。

-DistributorPassword distributor_password

是分发服务器的密码。

-DistributorSecurityMode [0|1]

指定分发服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），而数值 1 表示 Windows 身份验证模式。

-ResolverState [1|2|3]

指定如何解决冲突。数值 1 表示发布服务器在冲突中获胜，且订阅将重新初始化。数值 2 表示发布服务器在冲突中获胜，但订阅不重新初始化。数值 3 表示订阅服务器在冲突中获胜。

-HistoryVerboseLevel [1|2]

指定在队列读取器操作期间记录的历史记录数量。选择 1 可以将历史日志记录对性能的影响减到最小。

HistoryVerboseLevel 值 | 描述
1 | 默认值。始终更新同一状态（启动、进度、成功等等）的以前的历史消息。如果没有相同状态的前一条记录存在，将插入一条新记录。
2 | 除非该记录是为闲置消息或长期运行的作业消息而设（在这种情况下，更新以前的记录），否则插入新的历史记录。

-PollingInterval polling_interval

是为重复事务而查询日志的时间间隔（以秒为单位）。默认设置为 10 秒。该值可在 0 到 240 秒之间。

-Continuous

指定代理程序是否尝试不断轮询重复事务。如果指定，即使没有事务挂起，代理程序也将以轮询间隔轮询源中的重复事务。

-Output output_path_and_file_name

是代理程序输出文件的路径。如果未提供文件名，则向控制台发送该输出。如果有指定的文件名，则将输出追加到该文件中。

-OutputVerboseLevel [0|1|2]

指定该输出是否是详细的。如果详细级别为 0，则仅输出错误信息。如果详细级别为 1，则输出全部进度报告消息。如果详细级别为 2（默认），则输出全部错误信息和进度报告消息，这些信息对于调试很有用。

-LoginTimeOut login_time_out_seconds

是登录超时之前经过的秒数。默认设置为 15 秒。

-QueryTimeOut query_time_out_seconds

是查询超时之前经过的秒数。默认设置为 300 秒。

-DefinitionFile def_path_and_file_name

是代理程序定义文件的路径。代理程序定义文件包含该代理程序的命令提示参数。文件内容被作为可执行文件进行分析。双引号 (") 可用来指定包含任意字符的参数值。

有关此实用工具的位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

队列读取器代理程序

复制代理程序


复制快照代理程序实用工具

复制快照代理程序实用工具配置并启动快照代理程序，后者准备包含已发布表和数据库对象的架构和数据的快照文件、在快照文件夹内存储文件并在分发数据库中记录同步作业。

语法

snapshot [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Publication publication_name
[-BcpBatchSize bcp_batch_size]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-FieldDelimiter field_delimiter]
[-HistoryVerboseLevel [1|2|3]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password]
[-PublisherSecurityMode [0|1]]
[-QueryTimeOut query_time_out_seconds]
[-ReplicationType [1|2]]
[-RowDelimiter row_delimiter]

说明 可以按任意顺序指定参数。

参数

-?

输出全部可用参数。

-PublisherDB publisher_database

是发布服务器数据库名称。

-Publication publication

是发布名。仅当发布被设置为总是为新的或重新初始化的订阅提供快照时，此参数才有效。

-BcpBatchSize bcp_batch_size

是在一个大容量复制操作中发送的行数。当执行 bcp in 操作时，批处理大小是作为一个事务发送到服务器的行数，也是在分发代理程序记录 bcp 进度信息之前必须发送的行数。在执行 bcp out 操作时，使用的固定批处理大小是 1000。值为 0 表明没有记录消息。

-Continuous

指定代理程序是否尝试不断轮询重复事务。如果指定，即使没有事务挂起，代理程序也将以轮询间隔轮询源中的重复事务。

-DefinitionFile def_path_and_file_name

是代理程序定义文件的路径。代理程序定义文件包含该代理程序的命令提示参数。文件内容被作为可执行文件进行分析。双引号 (") 可用来指定包含任意字符的参数值。

-Distributor distributor

是分发服务器名称。

-DistributorLogin server_name[\instance_name]

是分发服务器的登录名。指定该服务器上的 Microsoft® SQL Server™ 2000 默认实例的 server_name。指定该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。

-DistributorPassword distributor_password

是分发服务器的密码。

-DistributorSecurityMode [0|1]

指定分发服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-FieldDelimiter field_delimiter

是 SQL Server 大容量复制数据文件中标记字段结尾的字符或字符序列。默认为 \n<x$3>\n。

-HistoryVerboseLevel [1|2|3]

指定在快照操作中记录的历史记录的数量。通过将值指定为 1 可以将历史记录对性能的影响最小化。

HistoryVerboseLevel 值 | 描述
1 | 默认值。始终更新同一状态（启动、进度、成功等等）的以前的历史消息。如果没有相同状态的前一条记录存在，将插入一条新记录。
2 | 除非该记录是为闲置消息或长期运行的作业消息而设（在这种情况下，更新以前的记录），否则插入新的历史记录。
3 | 除非是闲置消息记录，否则始终插入新记录。

-LoginTimeOut login_time_out_seconds

是登录超时之前经过的秒数。默认设置为 15 秒。

-MaxBcpThreads

指定可以并行执行的大容量复制操作的数量。同时存在的线程和 ODBC 连接的最大数量小于 MaxBcpThreads，或小于出现在分发数据库中同步事务中的大容量复制请求的数量。MaxBcpThreads 的值必须大于零，并且没有硬编码上限。默认值为 1。

-Output output_path_and_file_name

是代理程序输出文件的路径。如果未提供文件名，则向控制台发送该输出。如果有指定的文件名，则将输出追加到该文件中。

-OutputVerboseLevel [0|1|2]

指定该输出是否是详细的。如果详细级别为 0，则仅输出错误信息。如果详细级别为 1，则输出全部进度报告消息。如果详细级别为 2（默认），则输出全部错误信息和进度报告消息，这些信息对于调试很有用。

-PublisherLogin publisher_login

是发布服务器的登录名。

-PublisherPassword publisher_password

是发布服务器的密码。

-PublisherSecurityMode [0|1]

指定发布服务器的安全模式。数值 0 表示 SQL Server 身份验证模式（默认），数值 1 表示 Windows 身份验证模式。

-QueryTimeOut query_time_out_seconds

是查询超时之前经过的秒数。默认设置为 30 秒。

-ReplicationType [1|2]

指定复制类型。数值 1 表示事务复制，数值 2 表示合并复制。

-RowDelimiter row_delimiter

是 SQL Server 大容量复制数据文件中标记行的结尾的字符或字符序列。默认为 \n<，@g>\n。

注释

重要 如果安装 SQL Server 代理程序使其运行在本地系统帐户下而不是域用户帐户下（默认），则该服务只能访问本地计算机。如果配置运行在 SQL Server 代理程序下的快照代理程序，使其在登录到 SQL Server 时使用 Windows 身份验证模式，则该快照代理程序将失败。默认设置为 SQL Server 身份验证模式。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

复制代理程序

快照代理程序配置


scm 实用工具

scm 实用工具（服务控制管理器）可以创建、修改、启动、停止或暂停在 Microsoft Windows NT® 和 Microsoft Windows® 2000 下运行的任何 Microsoft® SQL Server™ 2000 服务。在 Microsoft Windows 98 下，scm 实用工具可以启动、停止或暂停等效的 SQL Server 应用程序。

语法

scm [-?]
-Action {1 | 2 | 3 | 4 | 5 | 6 | 7}
-Service service_name
[-Server server_name]
[-Pwd sa_password]
[-StartupOptions startup_option [ ...n] ]
[-ExePath exe_file_path]
[-SvcStartType {1 | 2}]
[-SvcAccount service_account]
[-SvcPwd service_password]
[-Dependencies service_name_dependency [;...n] ]

参数

[-?]

显示用法信息。

-Action {1 | 2 | 3 | 4 | 5 | 6 | 7}

指定实用工具执行下列何种操作。

代码 | 对策
1 | 开始
2 | 重新启动
3 | 正在运行
4 | 删除服务
5 | 安装服务
6 | 停止
7 | 修改

scm 实用工具返回消息框以指出操作是成功还是失败。使用操作代码 3 时，成功表示该服务正在运行，失败则表示该服务没有运行。

-Service service_name

指定被影响的 SQL Server 2000 服务。

[-Server server_name]

指定其服务将受到影响的服务器。默认设置是本地计算机。

说明 不要在 server_name 中包含实例名称。仅使用计算机名称。若要影响命名实例，请用 -Service 选项指定唯一的 service_name。

[-Pwd sa_password]

是服务器的 sa 登录密码。默认是空白密码。

[-StartupOptions startup_option [ ...n] ]

指定当服务启动时使用的用空格分隔的服务器启动选项列表。在安装或修改该服务时可应用该选项。

[-ExePath exe_file_path]

指定可在本地计算机上执行的服务的文件路径。在安装或修改该服务时可应用该选项。

[-SvcStartType {1 | 2}]

指定服务是否自动启动。如果指定 1，则必须手动启动该服务。如果指定 2，则当计算机启动时自动启动该服务。在安装或修改该服务时可应用该选项。

[-SvcAccount service_account]

指定分配给服务的网络登录帐户。在安装或修改该服务时可应用该选项。

[-SvcPwd service_password]

指定网络登录帐户密码。在安装或修改该服务时可应用该选项。

[-Dependencies service_name_dependency [;...n] ]

指定该服务与其它服务的相关性。只有当父服务运行时，相关服务才能运行。在安装或修改该服务时可应用该选项。

注释

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。


sqlagent 应用程序

sqlagent 应用程序从命令提示下启动 SQL Server 代理程序。通常，应从 SQL Server 服务管理器或在应用程序中使用 SQL-DMO 方法启动 SQL Server 代理程序。只有当诊断 SQL Server 代理程序时，或者在基本支持提供者的指令下，才从命令提示下运行 sqlagent。

语法

sqlagent -c [-v]

参数

-c

指定 SQL Server 代理程序从命令提示下运行，并且独立于 Windows NT 服务控制管理器。当使用 –c 时，无法从"控制面板"的"服务"应用程序或 SQL Server 服务管理器控制 SQL Server 代理程序。

-v

指定 SQL Server 代理程序以详细模式运行并向命令提示窗口写入诊断信息。该诊断信息与写入 SQL Server 代理程序错误日志的信息相同。

注释

在显示版权信息后，只有指定了 -v 开关，sqlagent 才会在命令提示窗口中显示输出。要停止 sqlagent，可在命令提示下按 CTRL+C 键。在停止 sqlagent 前，请不要关闭命令提示窗口。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。


sqldiag 实用工具

sqldiag 实用工具收集并存储诊断信息和查询历史跟踪（如果正在运行）的内容。输出文件包含错误日志、来自 sp_configure 的输出结果以及附加的版本信息。如果当此实用工具被唤醒调用时查询历史跟踪正在运行，则跟踪文件将包含最后 100 个 SQL 事件和异常错误。sqldiag 试图通过 Microsoft 产品支持服务加速和简化信息收集。

语法

sqldiag[-?]
[-I instance_name]
[ [-U login_ID] [-P password] | [-E] ]
[-O output_file]
[-X] [-M] [-C]

参数

[-?]

显示使用信息。

-I instance_name

指定要连接的本地服务器上的 Microsoft® SQL Server™ 2000 实例。去掉 -I 选项可以连接到本地服务器上的默认实例。

-U login_id

用户登录 ID。登录 ID 区分大小写。

-P password

指定的 login_ID 密码。如果在指定 password 的命令提示后指定 -P 选项，则 sqldiag 将使用默认设置而不是 NULL 的密码。密码区分大小写。

-E

使用信任连接而不请求密码。

-O output_file

将 sqldiag 输出重定向到名称为 output_file 的文件。如果未指定 -O 选项，则输出文件名默认为 sqldiag.txt。在这种情况下，跟踪文件名保持不变为 blackbox.trc 和 blackbox_01.trc。

如果指定 -O 选项，则 sqldiag 根据用于 output_file 的名称重命名跟踪文件 blackbox.trc 和 blackbox_01.trc（例如，如果将 output_file 指定为 MyDiagnostics.txt，则跟踪文件将分别重命名为 MyDiagnostics.trc 和 MyDiagnostics_01.trc）。

使用 -O 选项使用户能够在同一目录中存储若干 sqldiag 输出文件。

-X

排除错误日志。

-M

执行 DBCC 堆栈转储。

-C

检索群集信息。

注释

sqldiag 实用工具可以在任何时候运行，无论是否已启动 SQL Server。如果 SQL Server 正在运行，则 sqldiag 将收集下列项目：

  • 所有错误日志的文本。

  • 注册表信息。

  • DLL 版本信息。

  • 输出源于：
    • sp_configure

    • sp_who

    • sp_lock

    • sp_helpdb

    • xp_msver

    • sp_helpextendedproc

    • sysprocesses
  • 输入缓冲区 SPID/死锁信息。

  • 用于服务器的 Microsoft 诊断报告，包含：
    • <servername>.txt 文件的内容

    • 操作系统版本报告

    • 系统报告

    • 处理器列表

    • 视频显示报告

    • 硬盘驱动器报告

    • 内存报告

    • 服务报告

    • 驱动程序报告

    • IRQ 和端口报告

    • DMA 和内存报告

    • 环境报告

    • 网络报告
  • 最后 100 条查询和异常错误。

如果 SQL Server 2000 未在运行，则 sqldiag 将跳过收集输入缓冲区 SPID 信息和诊断报告。sqldiag 必须在服务器本地运行，而不是在客户端工作站上运行。如果在 Microsoft Windows® 98 服务器上执行 sqldiag，则必需 -U 和 -P 选项，这意味着 sqldiag 必须从 Microsoft MS-DOS® 窗口运行。由 sqldiag 收集的 Windows 98 服务器的信息将不如在 Microsoft Windows 2000 或 Microsoft Windows NT® 服务器上收集的信息完全。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

请参见

将错误报告给您的主要支持提供者


sqlmaint 实用工具

sqlmaint 实用工具在一个或多个数据库上执行一套指定的维护操作。可以使用 sqlmaint 来运行 DBCC 检查，备份数据库及其事务日志，更新统计并重建索引。所有数据库维护活动都生成一个报表，该报表可以发送到一个指定的文本文件、HTML 文件或电子邮件帐户。

语法

sqlmaint
[-?]|
[
[-S server_name[\instance_name]]
[-U login_ID [-P password]]
{
[ -D database_name | -PlanName name | -PlanID guid ]
[-Rpt text_file]
[-To operator_name]
[-HtmlRpt html_file [-DelHtmlRpt <time_period>] ]
[-RmUnusedSpace threshold_percent free_percent]
[-CkDB | -CkDBNoIdx]
[-CkAl | -CkAlNoIdx]
[-CkCat]
[-UpdOptiStats sample_percent]
[-RebldIdx free_space]
[-WriteHistory]
[
{-BkUpDB [backup_path] | -BkUpLog [backup_path] }
{-BkUpMedia
{DISK [ [-DelBkUps <time_period>]
[-CrBkSubDir ] [ -UseDefDir ]
]
| TAPE
}
}
[-BkUpOnlyIfClean]
[-VrfyBackup]
]
}
]

<time_period> ::=
number[minutes | hours | days | weeks | months]

说明 参数与其值之间必须用一个空格分隔。例如，在 -S 和 server 之间必须有一个空格。

参数

-?

指定返回 sqlmaint 的语法关系图。此参数必须单独使用。

-S server_name[\instance_name]

指定 Microsoft® SQL Server™ 2000 的目标实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器，则 sqlmaint 连接到本地计算机上的 SQL Server 2000 默认实例。

-U login_ID

指定连接服务器时使用的登录 ID。如果未提供，则 sqlmaint 尝试使用 Windows 身份验证。如果 login_ID 包含特殊的字符，则它必须用英文双引号 (") 引起来；否则，双引号是可选的。

-P password

指定登录 ID 的密码。仅当也使用 -U 参数时才有效。如果 password 包含特殊字符，则它必须用英文双引号 (") 引起来；否则，双引号是可选的。

-D database_name

指定在其中执行维护操作的数据库的名称。如果 database_name 包含特殊字符，则它必须用英文双引号 (") 引起来；否则，双引号是可选的。

-PlanName name

指定使用数据库维护计划向导定义的数据库维护计划的名称。sqlmaint 唯一使用的该计划中的信息是其数据库列表。任何在其它 sqlmaint 参数中指定的维护活动都可应用于此列表中的数据库。可以从 SQL Server 企业管理器获得计划名称。

-PlanID guid

指定使用数据库维护计划向导定义的数据库维护计划的全局唯一标识符 (GUID)。sqlmaint 唯一使用的该计划中的信息是其数据库列表。任何在其它 sqlmaint 参数中指定的维护活动都可应用于此列表中的数据库。这必须与 msdb.dbo.sysdbmaintplans 中的 plan_id 值匹配。

-Rpt text_file

指定包含所生成报表的文件的完整路径和名称。报表也可以生成到屏幕上。报表通过将日期添加到文件名中来维护版本信息。日期生成方式如下：在文件名末尾、句点之前，使用 _yyyyMMddhhmm 格式。Yyyy = 年，MM = 月，dd = 日，hh = 时，mm = 分。

如果在 1996 年 12 月 1 日的 10:23 A.M. 运行该实用工具，且 text_file 的值为：

c:\Program Files\Microsoft SQL Server\Mssql\Backup\Nwind_maint.rpt

生成的文件名为：

c:\Program Files\Microsoft SQL Server\Mssql\Backup\Nwind_maint_199612011023.rpt

当 sqlmaint 访问远程服务器时 text_file 需要完整的 UNC 文件名。

-To operator_name

指定通过 SQL 邮件将生成的报表发送给哪个操作员。可以使用 SQL Server 企业管理器定义操作员。

-HtmlRpt html_file

指定包含所生成的 HTML报表的文件的完整路径和文件名称。sqlmaint 通过向文件名追加格式为 _yyyyMMddhhmm 的字符串生成文件名，这与 -Rpt 参数的作用相同。

sqlmaint 访问远程服务器时，html_file 需要完整的 UNC 文件名。

-DelHtmlRpt <time_period>

指定如果报表文件创建后的时间间隔超过了 <time_period> 时将删除报表目录中的所有 HTML 报表。

-DelHtmlRpt 查找那些名称符合由 html_file 参数生成的模式的文件。如果 html_file 为 c:\Program Files\Microsoft SQL Server\Mssql\Backup\Nwind_maint.htm，则 -DelHtmlRpt 将导致 sqlmaint 删除任何名称与 c:\Program Files\Microsoft SQL Server\Mssql\Backup\Nwind_maint*.htm 模式匹配的文件，以及早于指定的 <time_period> 的文件。

-RmUnusedSpace threshold_percent free_percent

指定从 -D 指定的数据库中删除未使用的空间。此选项仅对定义为自动增长的数据库有用。Threshold_percent 按兆字节指定在 sqlmaint 尝试删除未使用的数据空间之前数据库必须达到的大小。如果数据库小于 threshold_percent，则不进行操作。Free_percent 指定在数据库中必须保留的未使用空间的大小，按数据库最终大小的百分比指定。例如，如果一个 200 MB 的数据库包含 100 MB 的数据，将 free_percent 指定为 10，则最终数据库大小为 110 MB。应该注意的是，如果数据库小于 free_percent 加上数据库中的数据，则数据库不会扩展。例如，如果一个 108 MB 的数据库有 100 MB 的数据，则将 free_percent 指定为 10 不会使数据库扩展到 110 MB，而仍是 108 MB。

-CkDB | -CkDBNoIdx

指定在 -D 指定的数据库中运行的 DBCC CHECKDB 语句或带有 NOINDEX 选项的 DBCC CHECKDB 语句。有关更多信息，请参见 DBCC CHECKDB。

如果 sqlmaint 运行时数据库正在使用，则会在 text_file 中写入一个警告。

-CkAl | -CkAlNoIdx

指定在 -D 指定的数据库中运行的 DBCC NEWALLOC 语句或带有 NOINDEX 选项的 DBCC NEWALLOC 语句。有关更多信息，请参见 DBCC NEWALLOC。

-CkCat

指定在 -D 指定的数据库中运行 DBCC CHECKCATALOG 语句。有关更多信息，请参见 DBCC CHECKCATALOG。

-UpdOptiStats sample_percent

指定在数据库的每个表上运行下列语句：

UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT

有关更多信息，请参见更新统计信息。

-RebldIdx free_space

指定使用 free_space 百分比值作为填充因子的倒数，重建目标数据库中的表的索引。例如，如果 free_space 百分比值为 30，则使用的填充因子为 70。如果 free_space 百分比值为 100，则使用初始的填充因子值重建索引。

-WriteHistory

指定在 msdb.dbo.sysdbmaintplan_history 中为由 sqlmaint 执行的每次维护操作生成一项。如果指定了 -PlanName 或 -PlanID，则 sysdbmaintplan_history 中的项目使用指定计划的 ID。如果指定了 -D，则通过给计划 ID 赋予零值来生成 sysdbmaintplan_history 中的项目。

-BkUpDB [backup_path] | -BkUpLog [backup_path]

指定备份操作。-BkUpDb 备份整个数据库。-BkUpLog 仅备份事务日志。

[backup_path] 指定备份的目录。如果也指定了 -UseDefDir，则不需要 [backup_path]，如果两者都指定，则 [backup_path] 被 -UseDefDir 替代。备份可以放在目录或磁带设备地址中（例如，\\.\TAPE0）。数据库备份的文件名自动生成如下：

dbname_db_yyyyMMddhhmm.BAK

其中

  • dbname 是正在进行备份的数据库的名称。

  • yyyyMMddhhmm 是备份操作的时间，yyyy = 年，MM = 月，dd = 日，hh = 时，mm = 分。

    事务备份的文件名自动使用与下面相似的格式生成：

    dbname_log_yyyymmddhhmm.BAK

    如果使用 -BkUpDB 参数，则必须通过 -BkUpMedia 参数指定媒体。

-BkUpMedia

指定备份的媒体类型。

DISK

指定备份媒体为磁盘。

-DelBkUps <time_period>

指定如果创建备份后的时间间隔超过了 <time_period> 则删除备份目录中的所有备份文件。

-CrBkSubDir

指定在 [backup_path] 目录中创建子目录；如果同时指定了 UseDefDir，则在默认的备份目录中创建子目录。子目录的名称从 -D 指定的数据库名称中生成。-CrBkSubDir 提供了一种简单的方法，可用来将不同数据库的所有备份放入单独的子目录中，而不必更改 [backup_path] 参数。

-UseDefDir

指定在默认的备份目录中创建备份文件。如果两者都指定，则 UseDefDir 替代 [backup_path]。在默认的 SQL Server 2000 安装程序中，默认备份目录是 c:\Program Files\Microsoft SQL Server\Mssql\Backup。

TAPE

指定备份媒体为磁带。

-BkUpOnlyIfClean

指定仅当任何指定的 -Ck 检查未发现数据问题时才进行备份。维护操作的运行顺序与其在命令提示中出现的顺序相同。如果要同时指定 -BkUpOnlyIfClean，则应在 -BkUpDB/-BkUpLog 参数前指定参数 -CkDB、-CkDBNoIdx、-CkAl、-CkAlNoIdx、-CkTxtAl 或 -CkCat，否则无论是否检查报表问题，都将进行备份。

-VrfyBackup

指定当备份完成时在备份上运行 RESTORE VERIFYONLY。

number[minutes | hours | days | weeks | months]

指定时间间隔，用来确定报表或备份文件是否陈旧到需要删除的程度。number 是一个整数。有效的示例包括 12weeks、3months 和 15days。如果仅指定了 number，则默认的日期部分为 weeks。

注释

sqlmaint 在一个或多个数据库上执行维护操作。如果指定了 -D，则仅在指定的数据库上执行在剩余的开关中指定的操作。如果指定了 -PlanName 或 -PlanID，则 sqlmaint 从指定的维护计划中检索的唯一信息是计划中的数据库列表。在 sqlmaint 剩余参数中指定的全部操作，都将应用于从计划取得的列表中的每个数据库。sqlmaint 不进行在计划本身中定义的任何维护活动。

如果成功运行，则 sqlmaint 实用工具返回 0，否则返回 1。在下列情况下将报告失败：

  • 如果任何维护操作失败。

  • 如果 -CkDB、-CkDBNoIdx、-CkAl、-CkAlNoIdx、-CkTxtAl 或 -CkCat 检查发现数据有问题。

  • 如果遇到常规错误。

有关此实用工具的位置和运行方式的信息，请参见命令提示实用工具入门。

示例
A. 对 Northwind 数据库执行 DBCC 检查
sqlmaint -S MyServer -U "sa" -P "SaPwd" -D Northwind -CkDB -CkAl -CkCat -Rpt C:\MyReports\Nwind_chk.rpt
B. 使用计划中所有数据库的 15% 样本更新统计信息。同时将任何已达到 110 MB 的数据库收缩到仅有 10% 的可用空间
sqlmaint -S MyServer -U "sa" -P "SaPwd" -PlanName MyUserDBPlan -UpdOptiStats 15 -RmUnusedSpace 110 10
C. 将计划中的所有数据库备份到它们在默认的 x:\Program Files\Microsoft SQL Server\Mssql\Backup 目录中各自的子目录中。同时删除任何超过两个星期的备份
sqlmaint -S MyServer -U "sa" -P "SaPwd" -PlanName MyUserDBPlan -BkUpDB -BkUpMedia DISK -UseDefDir -CrBkSubDir -DelBkUps 2weeks


sqlservr 应用程序

sqlservr 应用程序可以从命令提示符下启动、停止、暂停和继续 Microsoft® SQL Server™ 2000 的实例。

语法

sqlservr [-sinstance_name] [-c] [-dmaster_path] [-f]
    [-eerror_log_path] [-lmaster_log_path] [-m]
    [-n] [-Ttrace#] [-v] [-x] [-g number] [-O] [-y number]

参数

-s instance_name

指定要连接到的 SQL Server 实例。如果未指定命名实例，sqlservr 将启动 SQL Server 默认实例。

重要 启动 SQL Server 实例时，必须从实例所在的适当目录使用 sqlservr 应用程序。对于默认实例，从 \MSSQL\Binn 目录运行 sqlservr。对于命名实例，在 \MSSQL$instance_name\Binn 目录运行 sqlservr。

-c

表示以独立于 Windows NT 服务控制管理器的方式启动 SQL Server 实例。当从命令提示符下启动 SQL Server 时，可使用该选项缩短启动 SQL Server 的时间。（注意：当使用该选项时，无法通过使用 SQL Server 服务管理器或 net stop 命令停止 SQL Server，而且如果已从 Microsoft Windows NT® 系统注销，则 SQL Server 将停止运行。）

-d master_path

指出 master 数据库文件的完全合法路径。在 -d 和 master_path 之间没有空格。

-f

以最小配置模式启动服务器。然后，系统管理员可对配置选项重新配置（使用 sp_configure 系统存储过程）。

-e error_log_path

表示错误日志文件的完全合法路径。如果未指定路径，则默认实例的默认位置是 x:\Program Files\Microsoft SQL Server\MSSQL\Log\Errorlog，命名实例的默认位置是 x:\Program Files\Microsoft SQL Server\MSSQL$instance_name\Log\Errorlog。在 -e 和 error_log_path 之间没有空格。

-l master_log_path

指示 master 数据库事务日志文件的完全合法路径。在 -l 和 master_log_path 之间没有空格。

-m

表示在单用户模式下启动 SQL Server 实例。如果 SQL Server 是以单用户模式启动的，则只能连接一个用户。CHECKPOINT 机制（它确保完成的事务定期从磁盘高速缓存写入数据库设备中）将不启动。（一般情况下，如果您遇到需要修复的系统数据库问题时，可使用此选项。）

-n

表示您不想使用 Windows NT 应用程序日志来记录 SQL Server 事件。如果用 -n 选项启动 SQL Server 实例，则最好也使用 -e 选项，否则将不会记录 SQL Server 事件。

-T trace#

表示应使用指定的有效跟踪标记 (trace#) 来启动 SQL Server 实例。跟踪标志用来启动具有非标准行为的服务器。有关可用跟踪标记 (trace#) 的更多信息，请参见跟踪标记。

重要 当指定跟踪标志时，请使用 –T 来传递跟踪标志号。SQL Server 接受小写字母 t (-t)；然而，-t 还设置 SQL Server 支持工程师所需的其它内部跟踪标记。

-v

显示服务器的版本号。

x

禁用维护 CPU 统计。

-g memory_to_reserve

指定内存的兆字节整数，该内存被保留下来用于 SQL Server 2000 内部（进程内）运行的其它应用程序。

-O

指定不需要分布式 COM (DCOM)，从而禁用异类查询。

-y error_number

如果 SQL Server 2000 遇到在该选项中指定的错误信息，它将把表象堆栈跟踪写入错误日志。可以使用多个 –y 参数指定多个错误。

注释

有关此应用程序的位置和运行方式的更多信息，请参见命令提示实用工具入门。


sqlftwiz 实用工具

sqlftwiz 实用工具允许通过使用命令提示实用工具来执行全文索引向导。也可以从 SQL Server 企业管理器启动全文索引向导。使用全文索引向导定义对 Microsoft® SQL Server™ 2000 基于文本的列的全文索引，该索引使用现有的或新建的全文目录。全文索引向导也可以创建或修改填充调度，这些填充调度决定何时更新保存在全文目录中的信息。

语法

sqlftwiz
{/n | {/u login_id /p password}}
[/s server_name[\instance_name]]
[/d database_name]

参数

/n

指定 Windows 身份验证模式（不需要密码）。

/u login_id

指定用于连接到 SQL Server 2000 实例的登录 ID。

/p password

指定给定 login_id 的密码。

/s server_name[\instance_name]

指定其中的表将要进行全文索引的 SQL Server 2000 实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器，则 sqlftwiz 连接到本地计算机上的 SQL Server 2000 默认实例。

/d database_name

指定其中的表将要进行全文索引的SQL Server 数据库的数据库名。如果未指定 database_name，则 SQL Server 2000 将提示在给定的 server_name 上选择 database_name。

注释

开关及其相应的值之间不能有空格。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。

示例

本例在一个名为 MyServer 的服务器上，对 Northwind 数据库运行 sqlftwiz 实用工具。

sqlftwiz /sMyServer /n /dNorthwind

请参见

CONTAINS

FREETEXT

对 SQL Server 数据进行全文查询


vswitch 实用工具

vswitch 实用工具可用于将 Microsoft® SQL Server™ 2000、SQL Server 6.5 版和 SQL Server 6 0 版中的任意一个切换为当前的 SQL Server 版本。

语法

vswitch -SwitchTo {60 | 65 | 80} [-Silent {0 | 1}]

参数

-SwitchTo {60 | 65 | 80}

指定要激活的 SQL Server 版本。

-Silent {0 | 1}

指定是否显示任何用户界面或消息。如果是 1,则不显示用户界面或消息。默认值为 0。

注释

vswitch 实用工具仅对 SQL Server 默认实例有效。它对 SQL Server 2000 命名实例无效。有关更多信息，请参见多个 SQL Server 实例。

有关此实用工具位置和运行方式的信息，请参见命令提示实用工具入门。