Heim  >  Artikel  >  Datenbank  >  将SQL Server中的表变成txt文件

将SQL Server中的表变成txt文件

WBOY
WBOYOriginal
2016-06-07 16:18:121315Durchsuche

方法一:用BCP命令 bcp 实用工具 bcp 实用工具在 Microsoft? SQL Server? 2000 实例和数据文件之间以用户指定的格式复数据。 语法 bcp {[[database_name.][owner].]{table_name | view_name} | query} {in | out | queryout | format} data_file [-m max_err

  方法一:用BCP命令

  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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn