I have a table with a VARBINARY(MAX)
field (SQL Server 2008 with FILESTREAM
)
My requirement is that when I go to deploy to production, I can only supply my IT team with a group of SQL scripts to be executed in a certain order. A new table I am making in production has this VARBINARY(MAX)
field. Usually with new tables, I will script out the CREATE TABLE
script. And, if I have data I need to go with it, I will then script out the INSERT
scripts. Not too complicated.
But with VARBINARY(MAX)
, the Stored Procedure I was using to generate the INSERT
statements fails on that table. I tried selecting that field, printing it, copying it, converting to hex, etc. The main issue I have with that is that it doesn't select all the data in the field. I do a check DATALENGTH([FileColumn])
and if the source row contains 1,004,382 bytes, the max I can get the copied or selected data when inserting again is 8000. So basically it is truncated (i.e. invalid) data.....
How can I do this better? I tried Googling this like crazy but I must be missing something. Remember, I can't access the filesystem. This has to be all scripted.
Don't script from SSMS
bcp the data out/in, or use something like SSMS tools to generate INSERT statements