Специальное извлечение данных из SQL Server varbinary столбец

Я хотел бы получить некоторые двоичные данные от a varbinary(max) столбец в базе данных SQL Server для отладки целей.

Что самый легкий путь состоит в том, чтобы получить эти данные в локальный двоичный файл, предпочтительно не имея необходимость писать одноразовому консольному приложению?

Я попытался использовать Studio управления SQL Server (с "результатами в файл" опция), но это производит закодированную двоичную строку шестнадцатеричного числа в файл, а не необработанные двоичные данные.

6
задан Daniel Fortunov 28 April 2010 в 09:27
поделиться

1 ответ

Я не могу придумать более простого способа сделать это, чем выбросить бит 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();
        }
    }

Этот код был протестирован с использованием столбца Users.Sid ​​( который имеет тип varbinary) в стандартной установке SQL Server со службами Reporting Services.

6
ответ дан 8 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: