- 浏览: 374433 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (225)
- java (76)
- English (2)
- office (2)
- 架构设计 (1)
- 人在职场 (3)
- database (21)
- C# (18)
- 向往的院校 (0)
- C++ (1)
- AJAX (1)
- 操作系统 (8)
- eclipse (1)
- Spring (0)
- Linux (1)
- Javascript (6)
- 离散 (0)
- 协议 (1)
- sql server (5)
- sql server (0)
- fdf (0)
- xml (1)
- sql语句里top和distinct一起用 (1)
- 正则表达式 (7)
- 表达 (1)
- ms server (1)
- SWFObject (0)
- 线程 (2)
- Java线程 (0)
- Android & SQLite (0)
- Android (0)
- window.XMLHttpRequest (0)
- DB pool (0)
- tomcat内存溢出设置JAVA_OPTS (1)
- java bcp (1)
- 文件系统转换 (1)
- Microsoft XMLDom (1)
- tree (0)
- C# installer (0)
- 对付http cc攻击 (0)
- Ckeditor (0)
- MyEclipse (0)
- PDM (0)
- PDM OOM (0)
- asp.net (0)
- tomcat (1)
- Tomcat session (1)
- jdk (0)
- Bootstrap (0)
最新评论
-
kenail:
格式太乱了。
转 使用WebService压缩传输的心得 -
存在即为合理:
写得好乱,但是还是谢谢你的驱动
JDBC连接SQL server 2005 驱动 -
guji528:
长见识了,谢谢分享!
TL1协议(正文信息收集整理来源Internet) -
王大人:
Js window confirm()方法及其使用 -
Eastman:
SqlServer附加数据库出错,错误代码5123
转于: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单独存在的计算机上测试实例,一点问题都没有。
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单独存在的计算机上测试实例,一点问题都没有。
发表评论
-
SQLServer2005删除log文件和清空日志的方案
2017-06-12 10:01 0SQLServer2005删除log文件和清空日志的方案 ... -
my sql 下载安转&my sql front
2016-12-15 14:36 466http://dev.mysql.com/downl ... -
PD调出Comment
2016-11-23 11:45 0kjsdkgfjkgdf、 fglf ... -
PowerDesigner15.1连接SqlServer数据库导出表结构
2016-11-18 11:10 0http://blog.csdn.net/fuck48 ... -
sql server 2005中如何查询一个数据库的信息
2016-11-17 10:23 384use job SELECT * FROM sysobje ... -
SQL SERVER 2005服务启动账号与安全
2016-09-18 11:43 0在Windows操作系统上,每个服务都有一个启动的账号, ... -
数据库攻击
2016-09-13 11:32 0http://wenku.baidu.com/link?url ... -
SQL Server中的命名管道(named pipe)及其使用
2016-09-08 16:17 01. 什么是命名管道? ... -
SQL server无法启动服务,提示“错误1069: 由于登录失败而无法启动服务”
2016-08-26 14:39 0前几天在用户里看到 ... -
mmc检测到此管理单元发生一个错误
2015-08-07 17:13 0win2007 下sql server2005出现 ... -
sql serve2005 top
2015-08-05 13:39 0--返回符合条件的100%的记录,即所有符合条件的记录SELE ... -
SQL SERVER 日志已满的处理方法
2015-07-21 09:55 0事务日志文件Transaction Log File是用来记 ... -
sql server 视图中定义参数
2015-07-17 07:19 0内嵌用户定义函数 内 ... -
修改字段内容的部分内容
2015-06-02 11:12 491update Example set E_memo=repl ... -
sql 同表记录复制
2015-05-22 11:40 0insert into tbl_name(col1, ... -
使用PowerDesigner进行代码生成 .
2015-01-08 10:13 0很多代码生成器都选择了从表结构来生成领域模型,这样的方案有 ... -
如何在SQL Server 2005中建立主外键关系?如何实现级联删除效果? .
2014-12-25 15:24 0问题: 如何在SQL Server 2005中建立主外键 ... -
[转]SqlServer数据库同步方案详解
2014-05-16 12:01 991SqlServer数据库同步是项目中常用到的环节,若一个项目 ... -
Microsoft SQL 2000 错误代码 (@@error) [转贴]
2014-03-26 10:41 1803vCode ErrorMessage 0 操作成 ... -
日志工具Log Explorer
2014-02-02 05:06 0SQL Server 2000误更新了数据(update语 ...
相关推荐
4. BCP (Bulk Copy Program) 和 DTS (Data Transformation Services):用于大量数据导入导出,BCP是命令行工具,DTS则是一个图形化工具,现在已经被Integration Services (SSIS) 所取代。 5. SQL Server PowerShell...
在“mssql转mysql的odbc程序”这个场景中,我们主要关注的是如何利用ODBC将SQL Server数据库的数据迁移至MySQL数据库。 1. SQL Server与MySQL简介: - SQL Server:是微软公司开发的关系型数据库管理系统,广泛...
可以使用`bcp`工具或者SSMS的导入/导出向导来实现。如果数据量大,考虑分批导入,以降低内存占用和提高效率。 6. **验证和调整**:迁移完成后,对比源MySQL和目标MSSQL的数据一致性,检查所有表、索引、视图和存储...
本客户端集合 基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作,绿色 便携 包含常用的客户端工具: bcp.exe isql.exe isqlw.exe osql.exe profiler.exe 已经集成了 VC7,VC++7运行库;且包含了Sqlserver ...
为了解决这一问题,提出了一种解决方案——通过BCP工具进行数据处理。 #### BCP工具简介 BCP(Bulk Copy Program)是SQL Server提供的一种用于批量导入导出数据的实用工具。它能够高效地将大量数据从文本文件中...
总的来说,从mssql到Oracle的数据迁移是一个涉及多个步骤和技术的复杂过程,需要对两种数据库系统有深入理解,并能够灵活运用各种工具和策略。通过详尽的规划和测试,可以确保迁移的顺利进行,同时最小化业务中断。
4. **导入数据**:使用MySQL或MSSQL的命令行工具(如`LOAD DATA INFILE`或`bcp`)或图形界面工具(如MySQL Workbench或SQL Server Management Studio)导入数据。 5. **验证和调整**:检查导入的数据是否完整无误,...
- 可以使用MSSQL的`bcp`工具或`SELECT INTO OUTFILE`命令来导出数据到CSV或其他格式。 - SQL Server Management Studio(SSMS)也提供了导出数据到其他格式的功能。 4. **数据导入**: - MySQL的`LOAD DATA IN...
除了使用SSMS,还可以通过编写Transact-SQL脚本来实现数据导出,例如使用`bcp`命令行工具或`OPENROWSET(BULK...)`语句。`bcp`命令用于大量数据导入和导出,而`OPENROWSET(BULK...)`则可以直接在SQL查询中读取文本...
转换完成后,使用 SSMS 的“任务”->“导入数据”功能,或使用 `bcp` 命令行工具来导入数据。 3. 先导入基本数据表 首先导入包含 ZKTime6.0 系统的基础架构和配置的表,这些表构成了系统的框架。 4. 导入人事管理...
程序:K8-MSSQL综合利用工具V1.0 语言:VS2010 C# (.NET Framework v2.0) 作者:拉登哥哥 QQ:396890445 更新历史: 2012-06-09 [+] BCP导出txt(可导出整个表) 秒脱百万/千万记录 测试导出CSDN 640W数据 仅需10-15...
也可以使用第三方工具,如Data Loader或BCP(Bulk Copy Program)来批量导入数据。 3. 连接配置:在脚本或工具中,需要正确配置连接字符串,指向DBF文件的位置,并指定VFPOLEDB为数据提供者。 4. 数据转换与映射:...
2. **使用Bulk Insert**: 对于大文件,可以使用BULK INSERT语句配合BCP(Bulk Copy Program)工具。首先,将Excel数据导出为CSV,然后用BULK INSERT导入到SQL Server。 ```sql BULK INSERT YourTable FROM 'your...
本文将详细介绍从MSSQL迁移至MySQL的三种常见方法,包括手动导出表结构和数据、使用MySQL Migration Toolkit以及利用微软发布的专用转换工具。每种方法都有其特点和适用场景,读者可以根据自身需求选择最合适的方式...
从SQL数据库中导出图片...通过上述详细分析,我们可以看到,此存储过程通过巧妙地结合SQL Server中的各种特性(如存储过程、动态SQL、BCP工具、扩展存储过程等),实现了从SQL数据库中高效且灵活地批量导出图片的功能。
本文将详细介绍如何利用SQL Server提供的工具和技术来实现这一需求。 #### SQL到XML的基本原理 在SQL Server中,可以利用`FOR XML`子句来将查询结果转换为XML格式。此外,还可以通过BCP命令结合`xp_cmdshell`存储...
其中,DTS 是最强大的工具之一,提供了在 SQL Server 与任何的 OLE DB、ODBC 或文本文件格式之间导入、导出及转换数据的功能。 在实际应用中,深圳商报社在广告系统数据库的升级迁移过程中,采用了 DTS 导入和导出...
安装完成后,为了更好地管理和操作 SQL Server 数据库,还需要安装命令行工具 `sqlcmd` 和 `bcp`。 **3.1 下载** 下载命令行工具的 RPM 包: ```bash [root@localhost/]# wget ...