转载自帮助文档
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
黄小二 阅读(1123)
评论(0) 编辑 收藏 所属分类:
[DB].SQL Server