写好BULK INSERTsql语句的执行顺序该怎么执行

SQL从文本导数据到数据库用到的BULK INSERT_最火下载站
您的位置: >
> SQL从文本导数据到数据库用到的BULK INSERT
SQL从文本导数据到数据库用到的BULK INSERT
  烈火建站学院文档 如果你从事与数据库相关的工作,有可能会涉及到将数据从外部数据文件插入倒SQL&Server的操作。本文将为大家演示如何利用BULK&INSERT命令来导入数据,并讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据。  BULK&INSERT  在SQL&Server中,BULK&INSERT是用来将外部文件以一种特定的格式加载到数据库表的T-SQL命令。该命令使开发人员能够直接将数据加载到数据库表中,而不需要使用类似于Integration&Services这样的外部程序。虽然BULK&INSERT不允许包含任何复杂的逻辑或转换,但能够提供与格式化相关的选项,并告诉我们导入是如何实现的。BULK&INSERT有一个使用限制,就是只能将数据导入SQL&Server。  插入数据下面的例子能让我们更好的理解如何使用BULK&INSERT命令。首先,我们来创建一个名为Sales的表,我们将要把来自文本文件的数据插入到这个表中。
CREATE&TABLE&[dbo].[Sales]&(&[SaleID]&[int],&[Product]&[varchar](10)&NULL,&[SaleDate]&[datetime]&NULL,&[SalePrice]&[money]&NULL&)&
&&&&当我们使用BULK&INSERT命令来插入数据时,不要启动目标表中的触发器,因为触发器会减缓数据导入的进程。  在下一个例子中,我们将在Sales表上创建触发器,用来打印插入到表中的记录的数量。&
CREATE&TRIGGER&tr_Sales&ON&Sales&FOR&INSERT&AS&BEGIN&PRINT&CAST(@@ROWCOUNT&AS&VARCHAR(5))&+&'&rows&Inserted.'&END
&&&&这里我们选择文本文件作为源数据文件,文本文件中的值通过逗号分割开。该文件包含1000条记录,而且其字段和Sales表的字段直接关联。由于该文本文件中的值是由逗号分割开的,我们只需要指定FIELDTERMINATOR即可。注意,当下面这条语句运行时,我们刚刚创建的触发器并没有启动:  
BULK&INSERT&Sales&FROM&'c:SalesText.txt'&WITH&(FIELDTERMINATOR&=&',')
  当我们要的数据量非常大时,有时候就需要启动触发器。下面的脚本使用了FIRE_TRIGGERS选项来指明在目标表上的任何触发器都应当启动:  
BULK&INSERT&Sales&FROM&'c:SalesText.txt'&WITH&(FIELDTERMINATOR&=&',',&FIRE_TRIGGERS)
  我们可以使用BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量。在前一个例子中,所有的1000条记录都在同一个事务中被插入到目标表里。下面的例子,我们将BATCHSIZE参数设置为2,也就是说要对该表执行500次独立的插入事务。这也意味着启动500次触发器,所以将有500咯打印指令输出到屏幕上。
BULK&INSERT&Sales&FROM&'c:SalesText.txt'&WITH&(FIELDTERMINATOR&=&',',&FIRE_TRIGGERS,&BATCHSIZE&=&2)
  BULK&INSERT不仅仅可以应用于SQL&Server&2005的本地映射驱动器。下面的语句将告诉我们如何从名为FileServer的服务器的D盘中将SalesText文件的数据导入。
BULK&INSERT&Sales&FROM&'FileServerD$SalesText.txt'&WITH&(FIELDTERMINATOR&=&',')
  有时候,我们在执行导入操作以前,最好能先查看一下将要输入的数据。下面的语句在使用BULK命令时,使用了OPENROWSET函数,以便从SalesText文本文件中读取源数据。该语句同时还需要使用一个格式文件(此处没有列出文件的具体内容)来表明该文本文件中的数据格式。
SELECT&*&FROM&OPENROWSET(BULK&'c:SalesText.txt'&,&FORMATFILE='C:SalesFormat.Xml'&)&AS&&GO&
上一篇: 下一篇:2011年6月 Web 开发大版内专家分月排行榜第二
2017年2月 总版技术专家分月排行榜第三
2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。写好BULK INSERT语句该怎么执行 - Oracle技术当前位置:& &&&写好BULK INSERT语句该怎么执行写好BULK INSERT语句该怎么执行&&网友分享于:&&浏览:233次写好BULK INSERT语句该如何执行各位大侠,我想求助: & 1、关于 oracle的 bulk insert语句写好后,我该如何操作啊 ?具体在哪里执行? &
& 2、比如:bulk insert zhong from '/home/bulk.txt' with (fieldterminator =',',rowterminator='\n'),&
这条语句我知道他该如何写,但是不知道在哪里去执行,我尝试了在终端,但不能简单的把它当做sql语句。 &
大家在网上说用存储过程,但是具体储存处过程又该如何写呢? & 3、如果哪位大侠知道,请给一个案例或者提示。 & 4、兄弟,在这里谢过了。------解决方案--------------------
探讨这不是Oracle的用法,这是SQL的用法吧.oracle导入文本的话用sqlldr或者用forall
------解决方案--------------------這是SQL2005以上版本的方法,導入大量數據参照/zh-cn/library/ms178129(SQL.90).aspxBULK INSERT--可直接用/zh-cn/library/ms188365(SQL.90).aspx格式固定可用(指定字段终止符和行终止符)/zh-cn/library/ms191485(SQL.90).aspx相同貼發一貼就行了
------解决方案--------------------那写c++程序编辑了些数据,放在struct中,想用类似bulk in的功能。oracle里有提供吗?
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 sql语句的执行顺序 的文章

 

随机推荐