首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> 数据库技巧 -> SQL Server 2005 - 善用 OPENROWSET 函数来存取大型对象(LOB)  
SQL Server 2005 - 善用 OPENROWSET 函数来存取大型对象(LOB)


文章类别:数据库技巧 来源: 作者: 发表日期:2006-10-28 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

我们在「Visual Basic 2005 档案 IO 与资料存取秘诀」一书的第七章,详细探讨了如何于前端程序处理大型对象(LOB)。有读者询问,SQL Server 2005 本身是否提供任何的 Transact-SQL 陈述式来处理 LOB 呢?答案当然是肯定的,而且具备相关处理能力的 Transact-SQL 陈述式还不只一个。不过在本文中,我们将把焦点摆在 OPENROWSET 函数。

 

SQL Server 2005 的 OPENROWSET 函数能够一次就完成远程数据的连结与存取作业。OPENROWSET 函数在使用的形式上就好比是一个资料表,比方说,您可以在 SELECT 陈述式的 FROM 子句中参考 OPENROWSET 函数,此外,视 OLE DB 提供者的能力而定,您也可以在 INSERT、UPDATE 或 DELETE 陈述式中把 OPENROWSET 函数当成目标数据表来使用。

 

特别值得一提的是,SQL Server 2005 替 OPENROWSET 函数加入了 BULK 数据列集提供者,使得您可以直接从文字文件、XML 文件、以及图档…等档案中读取数据。此意味着,从现在开始,您可以在一道非常简单的 INSERT INTO…SELECT 陈述式中使用 OPENROWSET 函数来将内含大量数据的档案内容存入数据表的字段中。

 

OPENROWSET BULK 选项自变量可以精确控制数据读取的开始与结束位置、如何处理错误、以及资料要如何被解译。比方说,您可以要求将数据文件读取成 varbinary、varchar 或 nvarchar 型别的单一数据列与单一字段的数据列集。

 

我想光说不练是没有用的在,以下的程序代码中,我们会先建立一个数据表,然后使用 INSERT INTO…SELECT 陈述式来新数据记录。请特别注意我们如何使用 OPENROWSET 函数将文字文件(.txt)与图档(.jpg)的内容直接存入数据表的「自传」与「玉照」字段中:

USE 北风贸易;
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id =
           OBJECT_ID(N'dbo.练习资料表') AND type in (N'U'))
DROP TABLE dbo.练习资料表
GO

--建立数据表
CREATE TABLE dbo.练习资料表(
 编号 int IDENTITY(1,1) NOT NULL,
 姓名 nvarchar(10) NULL,
 性别 nvarchar(2) NULL,
 自传 nvarchar(max) NULL,
 玉照 varbinary(max) NULL,
 );
GO

--新增第一笔数据(包括 NCLOB 与 BLOB 在内)
INSERT INTO dbo.练习资料表
(
姓名,
性别,
自传,
玉照
)
SELECT '章立民' AS 姓名, '男' AS 性别,
 * FROM
 OPENROWSET
    (BULK 'C:\Temp\Employee-A156401174.txt', SINGLE_NCLOB) AS 自传,
 OPENROWSET
    (BULK 'C:\Temp\Employee-A156401174.jpg', SINGLE_BLOB) AS 玉照;
GO

--新增第二笔数据(包括 NCLOB 与 BLOB 在内)
INSERT INTO dbo.练习资料表
(
姓名,
性别,
自传,
玉照
)
SELECT '章立民' AS 姓名, '男' AS 性别,
 * FROM
 OPENROWSET
    (BULK 'C:\Temp\Employee-A156401174.txt', SINGLE_NCLOB) AS 自传,
 OPENROWSET
    (BULK 'C:\Temp\Employee-A156404535.jpg', SINGLE_BLOB) AS 玉照;
GO

 

章立民研究室敬上

http://www.cnblogs.com/liminzhang/archive/2006/10/18/532140.html

上一篇:SQL Server 2000 在 win2003上安装不上,我的解决办法 下一篇:Linux脚本开发数学库在PHP中的重要性
本栏目热门文章
·Windows XP下安装SQL2000企业版 2005-10-4
·"SQL Server不存在或访问被拒绝"问题的解决 2006-8-11
·在SQL Server 2000里设置和使用数据库复制 2005-11-13
·SQL中通配符、转义符与"["号的使用(downmoon) 2005-11-3
·SQL Server 数据库管理常用的SQL和T-SQL语句 2005-11-13
·SQL SERVER实用技巧 2005-11-3
·配置SQL Server 2000选项 2005-10-8
·如何使Microsoft SQL Server的日志文件不会增大? 2005-10-4
·Sql Server下数据库链接的使用方法 2005-11-21
·如何快速杀死占用过多资源(CPU,内存)的数据库进程 2005-11-13
新近更新文章
·分页存储过程2000 2006-11-16
·分页存储过程2005 2006-11-16
·SQL SERVER 2005中同义词实例 2006-11-16
·存储过程使用技巧 2006-11-16
·sql server 2005中的表分区 2006-11-16
·Sql server优化50法 2006-11-16
·优化SQL Server服务器内存配置的策略 2006-11-16
·利用UltraEdit快速将SQL语句转换为符合VB.NET语法格式 2006-11-16
·用SQL语句实现异构数据库之间的导数据导入/出 2006-11-9
·MS SQL用ROWCOUNT解决TOP子句不支持变量的问题 2006-11-9
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: