Bulk Insert的用法

/************************************************************************************************

                          乌龟代码
*************************************************************************************************/

/******* 导出到excel */
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel */
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="c:/test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

/*动态文件名 
declare @fn varchar(20),@s varchar(1000) 
set @fn = 'c:/test.xls' 
set @s ='''Microsoft.Jet.OLEDB.4.0'', 
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0''' 
set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$' 
exec(@s) 
*/

SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="c:/test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

/********************** EXCEL导到远程SQL */
insert OPENDATASOURCE( 
'SQLOLEDB', 
'Data Source=远程ip;User ID=sa;Password=密码' 
).库名.dbo.表名 (列名1,列名2) 
SELECT 列名1,列名2 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="c:/test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


/** 导入文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:/DT.txt -c -Sservername -Usa -Ppassword'

/** 导出文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:/DT.txt -c -Sservername -Usa -Ppassword' 
或 
EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:/DT.txt -c -Sservername -Usa -Ppassword'

/**导出到TXT文本,用逗号分开*/ 
exec master..xp_cmdshell 'bcp "库名..表名" out "d:/tt.txt" -c -t ,-U sa -P password'


BULK INSERT 库名..表名 
FROM 'c:/test.txt' 
WITH ( 
FIELDTERMINATOR = ';', 
ROWTERMINATOR = '/n' 
)


--/* dBase IV文件 
select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:/','select * from [客户资料4.dbf]') 
--*/

--/* dBase III文件 
select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
,'dBase III;HDR=NO;IMEX=2;DATABASE=C:/','select * from [客户资料3.dbf]') 
--*/

--/* FoxPro 数据库 
select * from openrowset('MSDASQL', 
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 
'select * from [aa.DBF]') 
--*/

/**************导入DBF文件****************/ 
select * from openrowset('MSDASQL', 
'Driver=Microsoft Visual FoxPro Driver; 
SourceDB=e:/VFP98/data; 
SourceType=DBF', 
'select * from customer where country != "USA" order by country') 
go 
/***************** 导出到DBF ************** 
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 */

insert into openrowset('MSDASQL', 
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 
'select * from [aa.DBF]') 
select * from 表

/*说明: 
SourceDB=c:/ 指定foxpro表所在的文件夹 
aa.DBF 指定foxpro表的文件名. */


/*************导出到Access********************/ 
insert into openrowset('Microsoft.Jet.OLEDB.4.0', 
'x:/A.mdb';'admin';'',A表) select * from 数据库名..B表

/*************导入Access********************/ 
insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 
'x:/A.mdb';'admin';'',A表)

/*文件名为参数*/  
declare @fname varchar(20) 
set @fname = 'd:/test.mdb' 
exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'', 
'''+@fname+''';''admin'';'''', topics) as a ')

SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="f:/northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: eff bulk insert(大规模批量插入)是一种高效的数据插入方法,特别适用于需要批量插入大量数据的场景。它的主要特点是通过一次性插入多条记录,减少了数据库的访问次数和网络传输时间,从而提高了插入数据的效率。 使用eff bulk insert可以显著减少数据插入的时间和资源消耗。与传统的逐条插入方式相比,它可以减少对数据库的频繁访问,从而减少了插入数据的时间。使用eff bulk insert还可以减少网络传输时间,因为一次性插入多条记录可以通过一次网络传输完成。 在使用eff bulk insert时,需要准备一个数据集,该数据集包含要插入的多条记录。可以使用CSV文件、Excel文件或其他数据格式来存储这些记录。然后,通过使用数据库提供的API或工具,将数据集一次性插入到数据库中。 使用eff bulk insert需要考虑一些因素。首先,需要确保数据集的准确性和完整性,因为一次性插入可能会导致无法恢复的数据损失。其次,需要根据数据库的要求和限制来调整数据集的大小,以避免超出数据库的容量或性能限制。最后,需要根据实际情况考虑使用并发处理等优化技术,以进一步提高插入数据的效率。 总之,eff bulk insert是一种高效的数据插入方法,可以显著提高大规模批量插入数据的效率。通过一次性插入多条记录,减少了对数据库的频繁访问和网络传输时间,从而节省了时间和资源消耗。使用eff bulk insert需要注意数据集的准确性和完整性,调整数据集的大小,并根据需要使用优化技术。 ### 回答2: Ef BulkInsert是Entity Framework (EF) 提供的一种用于批量插入数据的方法。在传统的插入操作中,每次向数据库插入一条记录都需要与数据库建立连接、执行插入操作、关闭连接等一系列操作,这样的方式效率较低。 而Ef BulkInsert可以通过一次性提交多条数据到数据库,大大提高了插入数据的效率。它采用批量操作的方式,将多条数据一次性插入到数据库中,减少了连接和关闭连接的次数,提高了数据库操作的性能。 使用Ef BulkInsert的步骤如下: 1. 首先,我们需要安装Entity Framework库并引入相关命名空间。 2. 创建EF的DbContext对象,该对象用于和数据库进行交互。 3. 在DbContext对象中,使用BulkInsert方法,将要插入的数据一次性提交到数据库。 4. 执行BulkInsert操作后,数据将被批量插入到数据库中。 需要注意的是,Ef BulkInsert对于大批量数据插入非常有效,但在小规模的插入任务中,效果可能不如预期。此外,由于批量操作会占用较多的系统资源,因此需要根据具体情况进行合理的调整和使用。 总之,Ef BulkInsert是一种通过批量插入数据的方式来提高插入性能的方法,可以有效减少连接和关闭连接的次数,对于大批量数据插入任务非常实用。 ### 回答3: EF BulkInsert 是 Entity Framework (EF) 中的一个功能,用于批量插入数据到数据库中。传统的方法是通过循环遍历每个实体对象并逐个插入到数据库中,这种方式效率较低,尤其是当需要插入大量数据时。 而 EF BulkInsert 则通过内置的高效批量插入算法,能够在一次操作中将多个实体对象一次性插入到数据库中,从而极大地提高了插入数据的速度和效率。 使用 EF BulkInsert 主要包括以下几个步骤: 1. 首先,需要通过 NuGet 包管理器安装 EF BulkInsert 插件。 2. 创建实体对象的列表,将需要插入的数据存储在这个列表中。 3. 调用 EF BulkInsert 插件提供的 API,将实体对象列表作为参数传入,表示将这些实体对象批量插入到数据库中。 4. 执行插入操作后,EF BulkInsert 会自动处理数据库的连接和事务,确保数据的一致性和完整性。 5. 最后,可以根据返回的结果来判断插入是否成功,并进行相应的处理。 EF BulkInsert 在插入大量数据时能够极大地提升性能,减少了循环插入的时间消耗,同时还避免了频繁的数据库连接和事务开启的开销。 需要注意的是,EF BulkInsert 不适用于所有情况,特别是在需要进行复杂数据处理或者需要触发数据库的相关事件时,仍然需要使用传统的逐个插入方式。 总之,EF BulkInsert 是一个高效的批量插入数据的工具,可以在处理大量数据时显著提升性能,提供了更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值