我有元素表,想要将word文件上传到varbionary(max)列。 但它不起作用。我无法使用转义字符来解决此问题。
你有什么想法吗?
create table element
(element_id varchar(20) not null,
document_id varchar(20) not null,
student_id varchar(20) not null,
element_name varchar(50),
element_contents varbinary(max),
supervisor_comment varchar(200),
CONSTRAINT PK_Element PRIMARY KEY (element_id, document_id)
);
-----------------------------------------------------------
CREATE PROCEDURE AddElement
@ElementID nvarchar(20),
@DocumentID nvarchar(20),
@StudentID nvarchar(20),
@ElementName nvarchar(50),
@ElementPath nvarchar(50)
AS
BEGIN
insert into element(element_id,document_id,student_id,element_name,element_contents)
select @ElementID, @DocumentID, @StudentID, @ElementName, BulkColumn
FROM OPENROWSET(BULK N'@ElementPath',SINGLE_BLOB) as SRC;
END
------------------------------------------------------------
execute AddElement @ElementID='e001', @DocumentID='d001',@StudentID='20150901',@ElementName='Control Plan',@ElementPath='c:/control_plan.docx'
Msg 4860, Level 16, State 1, Procedure AddElement, Line 21
Cannot bulk load. The file "@ElementPath" does not exist.
答案 0 :(得分:0)
我认为原因只是使用你的变量:
N'@ElementPath'
将被解释为String" @ ElementPath"并将其作为文件名 - 这是不正确的......