加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

如何使用TSQL更新SQL SERVER中的BLOB

发布时间:2020-05-24 16:30:30 所属栏目:MsSql 来源:互联网
导读:如何仅使用TSQL更新BLOB字段(例如,从SSMS更新而不使用任何代码,如ADO.Net或 Linq)? 使用TSQL选择BLOB有两种方法: SELECT * FROM OPENROWSET (BULK C:TestTest1.pdf, SINGLE_BLOB) a 以及: SELECT BulkColumn FROM OPENROWSET (BULK C:TestTest1.p

如何仅使用TSQL更新BLOB字段(例如,从SSMS更新而不使用任何代码,如ADO.Net或 Linq)?

解决方法

使用TSQL选择BLOB有两种方法:
SELECT * FROM OPENROWSET (BULK 'C:TestTest1.pdf',SINGLE_BLOB) a

以及:

SELECT BulkColumn FROM OPENROWSET (BULK 'C:TestTest1.pdf',SINGLE_BLOB) a

请注意FROM子句后的相关名,这是必需的.

第二个版本可用于UPDATE,如以下示例所示:

UPDATE MyTable 
SET blobField = 
   (SELECT BulkColumn FROM OPENROWSET (BULK 'C:TestTest1.pdf',SINGLE_BLOB) a) 
WHERE (CriteriaField = @criteria)

对于部分更新,可以使用如.000000中所述的SET .WRITE mutator,这里是语法:

UPDATE MyTable SET BlobField .WRITE (expression,@offset,@length) WHERE (CriteriaField = @criteria)

请注意,WRITE mutator只能用于NON-NULL字段.

实际上,通过将@offset设置为0并将@length设置为NULL(或实际长度),这也可用于执行完全更新(如果列不包含NULL),如下例所示:

DECLARE @tmp VARBINARY(MAX) --Change to the correct datatype here
SELECT @tmp = BulkColumn FROM OPENROWSET (BULK 'C:TestTest1.pdf',SINGLE_BLOB) a
UPDATE MyTable SET BlobField .WRITE (@tmp,NULL) WHERE (CriteriaField = @criteria)

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读