%20%D0%BF%D1%80%D0%B8%20%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D1%81%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8%20%C2%AB%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%C2%BB.png)
Когда я пытаюсь использовать Excel 2013 для импорта внешних данных из источника данных SQL Server, идентификаторы GUID не импортируются.
Запрос, который я использую:
SELECT * FROM TABLENAME
Структура таблицы:
ThingId uniqueidentifier,
ThingName nvarchar(50)
Когда я явно прошу Excel импортировать только uniqueidentifier
, он ничего не импортирует (запрос):
SELECT ThingId from TABLENAME
Как заставить Excel импортировать уникальные идентификаторы (GUID) при использовании функции «Внешние данные»?
решение1
Excel (по причинам, которые я пока не определил), не может обрабатывать импортированные Guids нативно. Чтобы импортировать GUID из SQL Server, сначала необходимо изменить запрос на CAST Guid в nvarchar
. Запрос к источнику данных изменится на:
SELECT CAST(ThingID as nvarchar(100)), ThingName from TABLENAME
Функция CAST
гарантирует, что GUID находится в формате, который Excel интерпретирует как текст. Подойдет любой формат, который выводит текст; он не обязательно должен быть nvarchar
.