我想从 SQL Server 数据库中的 varbinary(max)
列检索一些二进制数据以用于调试目的。
将这些数据放入本地二进制文件的最简单方法是什么,最好无需编写一次性控制台应用程序?
我尝试使用 SQL Server Management Studio(使用“结果到文件”选项),但这会向文件输出十六进制编码的二进制字符串,而不是原始二进制数据。
最佳答案
我想不出比扔掉一些 C# 更简单的方法了......
static void Main(string[] args)
{
GetBinaryDataToFile("Server=localhost;Initial Catalog=ReportServer;Integrated Security=true", "D:\\temp.dat");
}
public static void GetBinaryDataToFile(string connectionString, string path)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Sid FROM Users WHERE UserID = '62066184-8403-494E-A571-438ABF938A4F'";
command.CommandType = CommandType.Text;
using (SqlDataReader dataReader = command.ExecuteReader())
{
if (dataReader.Read())
{
SqlBinary sqlBinary = dataReader.GetSqlBinary(0);
File.WriteAllBytes(path, sqlBinary.Value);
}
dataReader.Close();
}
}
connection.Close();
}
}
此代码已在带有 Reporting Services 的 SQL Server 默认安装中使用 Users.Sid 列(属于 varbinary 类型)进行了测试。
关于sql-server - 从 SQL Server varbinary 列临时检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2728041/