`

[转]MSSQL2000之bcp工具

 
阅读更多
转于:http://oracleabc-126-com.iteye.com/blog/1118115

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
BCP除了可以在控制台执行外,还可以通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行BCP。如:EXEC master..xp_cmdshell 'BCP NTS.dbo.T_User out c:/User.txt -c -U"sa" -P"password"'
1. 四个动作
01. 导入:这个动作使用IN命令完成,后面跟需要导入的文件名
02. 导出:这个动作使用OUT命令完成,后面跟需要导出的文件名,数据源是表或者视图
03. 使用SQL语句导出:这个动作使用QueryOut命令完成,跟OUT类似,数据源是SQL语句
04. 导出格式文件:这个动作使用Format命令完成,后而跟格式文件名
2. 常用的选项
01. -f Format_File
Format_File表示格式文件名。这个选项依赖于上述的动作,如果使用的是IN或OUT,Format_File表示已经存在的格式文件,如果使用的是Format则表示是要生成的格式文件
02. -x
这个选项要和-f Format_File配合使用,以便生成XML格式的格式文件
03. -F First_Row
指定从被导出表的哪一行导出,或从被导入文件的哪一行导入
04. -L last_Row
指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束
05. -c
使用Char类型做为存储类型,没有前缀且以"/t"做为字段分割符,以"/n"做为行分割符
06. -w
和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nChar做为存储类型
07. -t Field_Term
指定字符分割符,默认是"/t"
08. -r Row_Term
指定行分割符,默认是"/n"
09. -S Server_Name[ /Instance_Name]
指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可
10. -U Login_ID
指定连接SQL Sever的用户名
11. -P Password
指定连接SQL Server的用户名密码
12. -T
指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P
13. -k
指定空列使用NULL值插入,而不是这列的默认值
3. 数据导出
01. 导出整个表或视图
BCP NTS.dbo.T_User out c:/User.txt -c -U"sa" -P"password" --使用密码连接(用户名和密码需要加上双引号)
BCP NTS.dbo.T_User out c:/User.txt -c -T --使用信任连接
02. 导出SQL语句的目标数据
BCP "SELECT TOP 20 * FROM NTS.dbo.T_User" queryout c:/User.txt -c -U"sa" -P"password"
BCP "SELECT TOP 20 * FROM NTS.dbo.T_User" queryout c:/User.txt -F 10 -L 13 -c -U"sa" -P"password" --导出第10条到13条记录
03. 导出格式文件
BCP NTS.dbo.T_User format nul -f c:/User_format1.fmt -c -T --把表结构信息导出到User_format1.fmt中
BCP NTS.dbo.T_User format nul -f c:/User_format2.fmt -x -c -T --把表结构信息导出XML中
04. 导入数据
在导入数据时可以根据已经存在的格式文件将满足条件的记录导入到数据库中,不满足则不导入。如上述的格式文件中的第三个字段的字符长度是24,如果某个文本文件中的相应字段的长度超过24,则这条记录将不被导入到数据库中,其它满足条件的记录正常导入
BCP NTS.dbo.T_User in c:/User1.txt -c -T
BCP NTS.dbo.T_User in c:/User1.txt -c -F 10 -L 13 -T --导入时也可使用-F和-L选项来选择目标数据
BCP NTS.dbo.T_User in c:/User1.txt -F 10 -L 13 -c -f c:/User_format1.fmt -T --使用普通的格式文件
BCP NTS.dbo.T_User in c:/User1.txt -F 10 -L 13 -c -x -f c:/User_format2.fmt -T --使用XML格式的格式文件
05. 实际导出的例子
EXEC master..xp_cmdshell 'BCP SZC.dbo.T_User out c:/test1.csv -c -U"sa" -P"qwert1"' --使用密码连接
EXEC master..xp_cmdshell 'BCP SZC.dbo.T_User out c:/test1.csv -c -T' --使用信任连接
4. 其他方法导入导出数据
01. 导入数据
SELECT * INTO authors1
FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=192.1.1.2; UserID=sa; Password=qwert1').pubs.dbo.authors
02. 导出数据
INSERT INTO OPENDATASOURCE('SQLOLEDB', 'Data Source=192.1.1.2; UserID=sa; Password=qwert1').test.dbo.authors
SELECT * FROM pubs.dbo.authors
INSERT INTO OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=c:/')[data#txt] SELECT * FROM text1
INSERT INTO OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=c:/', [data#txt]) SELECT * FROM text1
03. 导入Excel数据
SELECT * INTO excel FROM OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0', 'Excel 5.0;DATABASE=c:/book1.xls' )[Sheet1$]
04. 导入到Excel
INSERT INTO OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0', 'Excel 5.0;DATABASE=c:/book1.xls' )[Sheet1$] SELECT * FROM excel


个人体会:首先,我在MSSQL2000和MSSQL2005并存的计算机上测试实例,但是,一直提示:不能连接到服务器。然后,我建立到MSSQL2000的ODBC,结果也没有成功。感觉应该是因为MSSQL2000和MSSQL2005版本冲突引起的,于是,就在MSSQL2000单独存在的计算机上测试实例,一点问题都没有。

分享到:
评论

相关推荐

    MSSQL开发工具

    4. BCP (Bulk Copy Program) 和 DTS (Data Transformation Services):用于大量数据导入导出,BCP是命令行工具,DTS则是一个图形化工具,现在已经被Integration Services (SSIS) 所取代。 5. SQL Server PowerShell...

    mssql转mysql的odbc程序

    在“mssql转mysql的odbc程序”这个场景中,我们主要关注的是如何利用ODBC将SQL Server数据库的数据迁移至MySQL数据库。 1. SQL Server与MySQL简介: - SQL Server:是微软公司开发的关系型数据库管理系统,广泛...

    MySQL数据迁移到MSSQL

    可以使用`bcp`工具或者SSMS的导入/导出向导来实现。如果数据量大,考虑分批导入,以降低内存占用和提高效率。 6. **验证和调整**:迁移完成后,对比源MySQL和目标MSSQL的数据一致性,检查所有表、索引、视图和存储...

    Microsoft Sqlserver 2000 查询分析器、事件探查器、osql、isql、bcp 绿色迷你便携版

    本客户端集合 基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作,绿色 便携 包含常用的客户端工具: bcp.exe isql.exe isqlw.exe osql.exe profiler.exe 已经集成了 VC7,VC++7运行库;且包含了Sqlserver ...

    BCP插入大容量数据

    为了解决这一问题,提出了一种解决方案——通过BCP工具进行数据处理。 #### BCP工具简介 BCP(Bulk Copy Program)是SQL Server提供的一种用于批量导入导出数据的实用工具。它能够高效地将大量数据从文本文件中...

    (原)mssql数据迁移到oracle

    总的来说,从mssql到Oracle的数据迁移是一个涉及多个步骤和技术的复杂过程,需要对两种数据库系统有深入理解,并能够灵活运用各种工具和策略。通过详尽的规划和测试,可以确保迁移的顺利进行,同时最小化业务中断。

    汉语辞海38万条access格式可以转mysql与mssql.rar

    4. **导入数据**:使用MySQL或MSSQL的命令行工具(如`LOAD DATA INFILE`或`bcp`)或图形界面工具(如MySQL Workbench或SQL Server Management Studio)导入数据。 5. **验证和调整**:检查导入的数据是否完整无误,...

    MSSQL数据迁移到MYSQL

    - 可以使用MSSQL的`bcp`工具或`SELECT INTO OUTFILE`命令来导出数据到CSV或其他格式。 - SQL Server Management Studio(SSMS)也提供了导出数据到其他格式的功能。 4. **数据导入**: - MySQL的`LOAD DATA IN...

    MSSQL2-导出文本

    除了使用SSMS,还可以通过编写Transact-SQL脚本来实现数据导出,例如使用`bcp`命令行工具或`OPENROWSET(BULK...)`语句。`bcp`命令用于大量数据导入和导出,而`OPENROWSET(BULK...)`则可以直接在SQL查询中读取文本...

    如何将zktime6.0数据库从MySQL迁移到MSSQL.pdf

    转换完成后,使用 SSMS 的“任务”->“导入数据”功能,或使用 `bcp` 命令行工具来导入数据。 3. 先导入基本数据表 首先导入包含 ZKTime6.0 系统的基础架构和配置的表,这些表构成了系统的框架。 4. 导入人事管理...

    K8MSSQL.rar

    程序:K8-MSSQL综合利用工具V1.0 语言:VS2010 C# (.NET Framework v2.0) 作者:拉登哥哥 QQ:396890445 更新历史: 2012-06-09 [+] BCP导出txt(可导出整个表) 秒脱百万/千万记录 测试导出CSDN 640W数据 仅需10-15...

    DBF备份文件导入mssql数据库需要的驱动

    也可以使用第三方工具,如Data Loader或BCP(Bulk Copy Program)来批量导入数据。 3. 连接配置:在脚本或工具中,需要正确配置连接字符串,指向DBF文件的位置,并指定VFPOLEDB为数据提供者。 4. 数据转换与映射:...

    asp导出Excel,导入Excel到MSSQL

    2. **使用Bulk Insert**: 对于大文件,可以使用BULK INSERT语句配合BCP(Bulk Copy Program)工具。首先,将Excel数据导出为CSV,然后用BULK INSERT导入到SQL Server。 ```sql BULK INSERT YourTable FROM 'your...

    mssql转换mysql的方法小结

    本文将详细介绍从MSSQL迁移至MySQL的三种常见方法,包括手动导出表结构和数据、使用MySQL Migration Toolkit以及利用微软发布的专用转换工具。每种方法都有其特点和适用场景,读者可以根据自身需求选择最合适的方式...

    从sql数据库中导出图片

    从SQL数据库中导出图片...通过上述详细分析,我们可以看到,此存储过程通过巧妙地结合SQL Server中的各种特性(如存储过程、动态SQL、BCP工具、扩展存储过程等),实现了从SQL数据库中高效且灵活地批量导出图片的功能。

    将SQL数据库表转换成XML文件输出(脚本)

    本文将详细介绍如何利用SQL Server提供的工具和技术来实现这一需求。 #### SQL到XML的基本原理 在SQL Server中,可以利用`FOR XML`子句来将查询结果转换为XML格式。此外,还可以通过BCP命令结合`xp_cmdshell`存储...

    SQL Server中的数据传输及其应用 (1).pdf

    其中,DTS 是最强大的工具之一,提供了在 SQL Server 与任何的 OLE DB、ODBC 或文本文件格式之间导入、导出及转换数据的功能。 在实际应用中,深圳商报社在广告系统数据库的升级迁移过程中,采用了 DTS 导入和导出...

    jdbc连接sqlserver数据库

    安装完成后,为了更好地管理和操作 SQL Server 数据库,还需要安装命令行工具 `sqlcmd` 和 `bcp`。 **3.1 下载** 下载命令行工具的 RPM 包: ```bash [root@localhost/]# wget ...

Global site tag (gtag.js) - Google Analytics