随笔-7  评论-24  文章-102  trackbacks-0

转载自帮助文档
ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_6tsql/html/f47eda43-33aa-454d-840a-bb15a031ca17.htm

使用带有 BULK 选项的 OPENROWSET

以下 Transact-SQL 增强功能支持 OPENROWSET(BULK...)函数:

  • 与 SELECT 一起使用的 FROM 子句可以调用 OPENROWSET(BULK...)而非表名,同时可以实现完整的 SELECT 功能。

    带有 BULK 选项的 OPENROWSET 在 FROM 子句中需要有一个相关名称,也称为范围变量或别名。可以指定列别名。如果未指定列别名列表,则格式化文件必须具有列名。指定列别名会覆盖格式化文件中的列名,例如:

    FROM OPENROWSET(BULK...) AS table_alias

    FROM OPENROWSET(BULK...) AS table_alias(column_alias,...n)

  • SELECT...FROM OPENROWSET(BULK...)语句将直接查询文件中的数据,无需将数据导入表中。SELECT…FROM OPENROWSET(BULK...)语句还可以通过使用格式化文件指定列名和数据类型,从而列出大容量列别名。

  • 通过将 OPENROWSET(BULK...)用作 INSERT 或 MERGE 语句中的源表,将数据文件中的数据大容量导入 SQL Server 表中。有关详细信息,请参阅使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据

  • OPENROWSET BULK 选项与 INSERT 语句一起使用时,BULK 子句支持表提示。BULK 子句除了接受 TABLOCK 等常规表提示之外,还可以接受下列专用表提示:IGNORE_CONSTRAINTS(仅忽略 CHECK 和 FOREIGN KEY 约束)、IGNORE_TRIGGERS、KEEPDEFAULTS 和 KEEPIDENTITY。有关详细信息,请参阅表提示 (Transact-SQL)

有关如何使用 INSERT...SELECT * FROM OPENROWSET(BULK...) 语句的信息,请参阅导入和导出大容量数据。有关何时在事务日志中记录由大容量导入执行的行插入操作的信息,请参阅在大容量导入中按最小方式记录日志的前提条件

注意:
使用 OPENROWSET 时,请务必了解 SQL Server 是如何处理模拟的。有关安全注意事项的信息,请参阅使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据



一些奇怪的示例:

declare @obj varbinary(max)
set @obj=(select * FROM OPENROWSET (Bulk 'c:\123.jpg', SINGLE_BLOB) as obj )
select @obj


Insert Infomation_Info(Title,Content,RecordUserID,Abstract,
   Source,SourceWebsite,ApproveID,Disable,Remark,Status,
   Thumbnail)
  Select @Title,@Content,@RecordUserID,@Abstract,
   @Source,@SourceWebsite,@ApproveID,@Disable,@Remark,@Status,
   * FROM OPENROWSET (Bulk 'c:\123.jpg', SINGLE_BLOB) AS Thumbnail


posted on 2009-09-15 08:49 黄小二 阅读(1124) 评论(0)  编辑  收藏 所属分类: [DB].SQL Server

只有注册用户登录后才能发表评论。


网站导航: