MSSQL 使用 OPENROWSET 插入或更新檔案到資料型態是「varbinary(max)」的欄位

由於Easyflow的ISO文管人員在沒有注意文件內容是否正確的情況下就將新版文件發佈,隔天才發現發佈檔案有問題。但依照Easyflow ISO文管運作流程,當文件發佈後如果需要進行修正就要做一次文件版本更新。這樣的作法費時又費工,如果可以直接置換存放於資料庫中的檔案內容或許是一個比較簡的作法。

在MSSQL的資料庫中,可以利用內建函式「OPENROWSET」來將檔案塞入到欄位中。使用「OPENROWSET」可以當作是一個子查詢,而這個子查詢的來源資料表就是實體檔案的存放路徑(以SQLSERVER本機的路徑為基準、或是可以存取的網芳資料夾中的檔案路徑)。

注意!必須要給子查詢指定一個別名,否則在執行操作中會出現錯誤。

以下的範例是置換文件編號為「TQP-G001」發佈版本為「C」所對應到的發佈檔案,置換為網芳分享資料夾中的檔案。

update isoebb set isoebb010 =
(select * FROM OPENROWSET(bulk N'\\192.168.128.189\temp\廢棄物管理程序.pdf', SINGLE_BLOB ) as binary_file )
where isoebb005='TQP-G001' and isoebb006='C'

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s