sql-server - 从 SQL Server varbinary 列临时检索数据

标签 sql-server varbinary

我想从 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/

相关文章:

sql - 如何只比较月份和年份,而不是完整的日期?

sql-server - SQL Server 2008 将 varchar 转换为 varbinary

sql-server - Entity Framework : Column must be mapped although it does have a default value?

c# - 使用c#在asp.net中显示varbinary图像

SQL Server 将 varbinary 转换为字符串

.net - SQL Server Varbinary(最大): select a subset of bytes from the varbinary field

c# - 如何将枚举转换为字节数组?

sql-server - T-SQL CASE/子查询

sql-server - SQL Server 执行时间代表什么?

sql - 多行到一个逗号分隔值不同的 ID