电脑安全

您当前的位置:主页 > 电脑安全 >

将SQL Server表变成txt文件-网络编程

来源:[db:来源]标题:   数据    编辑:电脑技术全能网 时间:2019-09-18 12:30

原标题:将SQL Server表变成txt文件-网络编程
   中心提醒:bcp 有用东西在 Microsoft&reg; SQL Server&#8482; 2000 实例和数据文件之间以用户指定的格局单数据  方式-:用BCP下令   bcp 有用东西  bcp 有用东西在 Microsoft&reg; 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&reg; 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 作为存储范例,不带前缀,(制表符)作为字段分开符,(换行符)作为行停止符。  -w  应用 Unicode 字符履行大容量复制操纵。此选项不提醒输出每一字段;它应用 nchar 作为存储范例,不带前缀,(制表符)作为字段分开符,(换行符)作为行停止符。不能在 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&reg; (ISO 1252)。  OEM 客户顺序应用的默许代码页。假如未指定 -C,则这是 bcp 应用的默许代码页。  RAW 不产生从一个代码页到另一个代码页的转换。由于不产生转换,以是这是最快的选项。  <值> 特定的代码页号码,比方 850。  -t field_term  指定字段停止符。默许的字段停止符是 (制表符)。应用此参数替换默许字段停止符。  -r row_term  指定行停止符。默许的行停止符是 (换行符)。应用此参数替换默许行停止符。  -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_nameinstance_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"/code]  [code]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  应用格局文件  方式二:DTS 导入/导出导游  DTS 导入/导出导游  在全部的数据转换效劳 (DTS) 东西中,DTS 导入/导出导游为在 OLE DB 数据源之间复制数据供给了最简略的方式。  在衔接到源和目标以后,能够抉择要导入或导出的数据,并可对要复制的数据利用种种转换(比方,经过抉择列或应用 Microsoft&reg; ActiveX&reg; 剧本)。在大少数情形下,能够主动与源数据一同复制主键和外键束缚。  阐明 能够复制从 SQL 查问中取得的数据。SQL 查问能够包括来自统一数据库或散布式查问中的多个表的连接。作为全部过程的一局部,假如不存在任何表,则 DTS 导入/导出导游会主动为您创立目标表。  可用的数据源  应用 DTS 导入/导出导游,能够衔接到以下数据源:  大少数的 OLE DB 和 ODBC 数据源以及用户指定的 OLE DB 数据源。  文本文件。  到一个或多个 Microsoft SQL Server™ 实例的别的衔接。  Oracle 和 Informix 数据库。  必需曾经装置 Oracle 或 Informix 客户端软件。  Microsoft Excel 电子表格。  Microsoft Access 和 Microsoft FoxPro&reg; 数据库。  dBase 或 Paradox 数据库。  无关更多信息,请拜见 DTS 衔接。  转换数据  除复制数据外,还能够用诸如 Microsoft Visual Basic&reg; Scripting Edition (VBScript) 或 Microsoft JScript&reg; 之类的 ActiveX 剧本言语转换列级数据。无关更多信息,请拜见 DTS 转换、转换数据义务和在 DTS 中应用 ActiveX 剧本。  复制数据库工具   应用 DTS 导入/导出导游,能够转换索引、视图、脚色、存储进程和援用完全性束缚等数据库工具。无关更多信息,请拜见复制 SQL Server 工具义务。  保留 DTS 包  实现 DTS 导入/导出导游以后,能够将衔接、转换以及调理信息保留为 DTS 包。能够以下情势保留包:  保留到 SQL Server msdb 数据库。  保留到 SQL Server 2000 Meta Data Services。  保留存为构造化存储文件(.dts 文件)。  保留为 Visual Basic 文件。  能够马上运转包或调理该包以供以后履行。  无关更多信息,请拜见保留 DTS 包和调理 DTS 包的履行。  编纂包  假如应用 DTS 导入/导出导游创立了一个包,而后保留了该包,则能够在 DTS 计划器中编纂这个包。应用 DTS 计划器,能够自界说在 DTS 导入/导出导游中创立的基础包,增加步调、义务、转换、变乱驱动逻辑以及设置任务流。无关更多信息,请拜见 DTS 计划器。