方法-:用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。