Sql server 2008 r2 如何将.pdf文件内容放入varbinary(max)列

Sql server 2008 r2 如何将.pdf文件内容放入varbinary(max)列,sql-server-2008-r2,Sql Server 2008 R2,我试图将.pdf文件的内容放入varbinary(max)类型的列中 我怎样才能做到这一点?我玩了convert和cast,但似乎不起作用 我正在考虑定义var1varbinary(max)并将其设置为文件的内容,但这也失败了 declare @var1 varbinary(max) set @var1 'c:\xxx\inp.pdf' ??? 然后: insert into t1(xdata) values ( @var1); 或者我可以使用“从文件插入”,不确定在没有批量的情况下是否可以

我试图将
.pdf
文件的内容放入
varbinary(max)
类型的列中

我怎样才能做到这一点?我玩了
convert
cast
,但似乎不起作用

我正在考虑定义
var1varbinary(max)
并将其设置为文件的内容,但这也失败了

declare @var1 varbinary(max)
set @var1 'c:\xxx\inp.pdf' ???
然后:

insert into t1(xdata) values ( @var1);
或者我可以使用“从文件插入”,不确定在没有批量的情况下是否可以这样做

感谢您的帮助,我也不能在单个qoutes中使用
.pdf
文件的内容,它将其视为
varchar
-(

谢谢大家的帮助。 Dai

您需要使用一个用于编写文档的

DECLARE @pdf VARBINARY(MAX)

SELECT @pdf = BulkColumn
FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB) AS Document;

SELECT @pdf, DATALENGTH(@pdf)

INSERT INTO dbo.YourTable(PDFContents) VALUES(@Pdf)
GO
或直接:

INSERT INTO dbo.t1(xdata) 
   SELECT BulkColumn
   FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB)

有关
OPENROWSET
函数的更多详细信息,请一如既往地在上找到。

将技术放在问题标签中,而不是标题中。如果SQL Server运行的帐户可以从服务器访问该文件,则可以从该服务器访问该文件。这里是这样的情况,还是
C:\xxx\inp.pdf
是您计算机上的文件cal machine?Thansk all,文件在我的本地c:上运行良好。不知何故,我无法匹配示例文件中的值,但这是另一个问题,测试此转换的好方法是什么?我尝试进行反向转换(binC1作为varchar(max))并在第一个NUL值上停止(正如我在记事本++中看到的那样)因此,我无法以pdf格式打开反向文件。此列将在www浏览器中以pdf文档的形式查看。