Oke, saya menemukan jawabannya. Cara untuk melakukannya adalah dengan fungsi substring, yang menurut MS secara akurat berfungsi dengan binari. Apa yang tidak mereka katakan adalah bahwa substring hanya akan mengembalikan 8.000 byte, itulah yang membuat saya terlempar.
Dengan kata lain, jika tipe data blob adalah gambar dan Anda menggunakan ini:
select substring(BlobField,0,100000000)
from TableWithHugeBlobField
where ID = SomeIDValue
--all you'll get is the first 8K bytes (use DataLength function to get the size)
Namun, jika Anda mendeklarasikan variabel varbinary(max) dan tipe data bidang blob adalah varbinary(max) - atau beberapa ukuran yang berguna bagi Anda - maka gunakan fungsi substring untuk mengembalikan biner parsial ke dalam variabel yang Anda nyatakan. Ini bekerja dengan baik. Seperti ini:
Declare @PartialImage varbinary(max)
select @PartialImage = substring(BlobField, 0, 100000000) --1GB
from TableWithHugeBlobField
where ID = SomeIDValue
select DataLength(@PartialImage) -- should = 1GB
Pertanyaan telah diajukan sebelumnya, mengapa menggunakan SQL untuk menyimpan data file? Ini pertanyaan yang valid; bayangkan Anda harus mereplikasi data sebagai file ke ratusan perangkat klien yang berbeda (seperti iPhone), setiap paket unik dari yang lain karena klien yang berbeda memiliki kebutuhan yang berbeda, maka menyimpan paket file sebagai gumpalan pada database jauh lebih mudah untuk diprogram dibandingkan dengan menggali folder secara terprogram untuk menemukan paket yang tepat untuk dialirkan ke klien.