您的位置:首页 > 数据库

向sqlserver插入二进制数据(如图片)

2009-08-20 16:51 357 查看
偶然在sqlteam看到了,真是够绝,这都想得出来,很便捷的一个方式(只适用于SQLSERVER2005+),应该跟大家分享。代码如下:
CREATETABLEmyTable(Documentvarbinary(max))
INSERTINTOmyTable(Document)
SELECT*FROM
OPENROWSET(BULKN'C:\Image1.jpg',SINGLE_BLOB)

当然了,如果需要添加一些变量之类的,让SQL语句更灵活,这能很好运用在存储过程和动态SQL中,再来一个插入XML文本

的,也是相当的简洁,代码如下:

[code]CREATETABLEXmlImportTest
(
xmlFileNameVARCHAR(300),
xml_dataxml
)
GO

DECLARE@xmlFileNameVARCHAR(300)
SELECT@xmlFileName='c:\TestXml.xml'
--dynamicsqlisjustsowecanuse@xmlFileNamevariableinOPENROWSET EXEC(' INSERTINTOXmlImportTest(xmlFileName,xml_data) SELECT'''+@xmlFileName+''',xmlData FROM ( SELECT* FROMOPENROWSET(BULK'''+@xmlFileName+''',SINGLE_BLOB)ASXMLDATA )ASFileImport(XMLDATA) ') GO SELECT*FROMXmlImportTest DROPTABLEXmlImportTest
注:关于SINGLE_BLOB的作用我就不在此做解释了,MSDN吧。
Update时也是可以用这种方式的,代码如下:
UPDATEtable
SETcolumn=
(SELECT*FROM
OPENROWSET(BULKN'D:\Filename.aspx',SINGLE_BLOB)ASORS)
WHEREID=2
不好意思,这些代码我还没亲自测试过,有什么不对的地方请多包涵。

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: