Экспорт таблицы SQL Server, содержащей большой текстовый столбец - PullRequest
0 голосов
/ 17 января 2019

Мне нужно экспортировать таблицу из SQL Server, таблица содержит столбец с большим текстовым содержимым, максимальная длина которого может достигать 100 000 символов.

Когда я использую Excel в качестве места назначения экспорта, я обнаруживаю, что длина этого текста ограничена и усечена до 32 765.

Существует ли формат экспорта, который сохраняет длину?

Примечание:

  1. Я буду в конечном итоге импортировать эти данные в другой SQL Server
  2. Сервер назначения SQL находится в другой сети, поэтому связанные серверы и другие локальные параметры невозможны
  3. У меня нет доступа к серверу, поэтому создание резервной копии затруднено

Ответы [ 2 ]

0 голосов
/ 17 января 2019

.sql - лучший формат для таблицы sql. Является ли родной формат для таблицы sql, при этом вам не нужно согласовывать экспорт.

0 голосов
/ 17 января 2019

Как указано в спецификации Excel и ограничения максимальное количество символов, которое можно сохранить в одной ячейке Excel, составляет 32 767 символов; следовательно, почему ваши данные усекаются.

Возможно, вам лучше экспортировать в CSV, , однако , обратите внимание, что квотированные файлы CSV не поддерживаются в bcp / BULK INSERT до SQL Server 2019 (в настоящее время в режиме предварительного просмотра). Вы можете использовать такие символы, как || для обозначения разделенного поля, однако, если у вас есть какие-либо разрывы строк, вам нужно будет также выбрать другой разделитель строк. Однако SSIS и другие инструменты ETL do поддерживают кавычки, идентифицированные CSV-файлы; так что вы можете использовать что-то подобное.

В противном случае, если вам нужно экспортировать такие длинные значения и вы хотите использовать Excel как можно чаще (что я лично лично не рекомендую из-за этих ужасных драйверов ACE), я бы предложил экспортировать значения (n)varchar(MAX) в что-то еще, например, текстовый файл, и именование каждого файла со значением вашего Первичного ключа. Затем, когда вы импортируете данные обратно, вы можете снова извлечь значение (n)varchar(MAX) из каждого отдельного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...