在 SQL Server 2008 中,我有一个接受 VarBinary 参数的存储过程。当参数在内存中时,我想将它写入 SQL Server 的 %temp% 目录。
如何从内存 blob(它来自 C# 应用程序的字节 [])到文本文件?该 blob 不存在于任何磁盘驻留表中。
我倾向于让 TSQL sproc 调用 CLR 存储过程,到目前为止看起来(大部分)如下所示。
问题 #1 是我认为 inputBytes[] 卡在 8k 输入大小。
问题 #2 是我似乎无法想出一些像样的 SQL 将 varbinary 值作为参数传递,因此我可以在 Management Studio 或 VS DB 单元测试中对其进行测试。
public static void FileWrite( string inputName , byte[] inputBytes )
using (FileStream fileStream = new
FileStream(Environment.GetEnvironmentVariable("TEMP") + "\\" + inputName,
FileMode.OpenOrCreate, FileAccess.Write))
{
using ( BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
binaryWriter.Write( inputBytes );
}
}
谢谢。