SQL Server Varbinary(max):从varbinary字段中选择一个字节子集

时间:2009-08-17 16:09:55

标签: .net sql-server sql-server-2008 varbinary

在SQL Server 2008中从varbinary(MAX)字段(不使用FileStreams)读取部分二进制数据的最有效方法是什么?

当向列中写入数据时,VarBinary.Write()函数在T-SQL中可用,允许以递增方式将字节写入字段,但似乎没有类似的函数可用于读取数据。 / p>

我知道.Net中的DataReader.GetBytes()方法会选择你要求的字节,但这会带来性能开销吗?即,sqlserver中的select是否会读取数据库中的所有字节,然后为所有这些字节提供getBytes()方法,以便从中获取所请求的字节子集?

感谢您的帮助。

2 个答案:

答案 0 :(得分:18)

您使用SUBSTRING。这将从服务器上的varbinary数据中读取一个片段,并仅将片段返回给客户端。

答案 1 :(得分:1)

使用DataReader.GetBytes()是可能的,没有开销,afaik。但是,您必须使用ExecuteReader()选项调用CommandBehavior.SequentialAccess