How do I upload a file to a varbinary(max) column in SQL Server 2008, using TSQL?

sql, sql-server

Solution

Does this help?

USE AdventureWorks
GO
CREATE TABLE myTable(FileName nvarchar(60),
  FileType nvarchar(60), Document varbinary(max))
GO

INSERT INTO myTable(FileName, FileType, field_varbinary)
   SELECT 'Text1.txt' AS FileName,
      '.txt' AS FileType,
      * FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document
GO

Taken from here: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/513cbf8c-21a8-4bcc-a565-6eb06437a398

Problem

This must be possible because I believe I've done it before. Here's my query: ``` insert into exampleFiles Values(NEWID(), cast('c:\filename.zip' as varbinary(max)) ``` Obviously that just inserts the text in between the quotes and not the file from that location. There must be a simple tsql bit of language that I'm forgetting. Thanks

Original source