Я новичок в этом, поэтому, пожалуйста, несите меня. Я пытаюсь передать некоторые XML-данные в Microsoft SQL Server. Я предполагаю, что эти данные должны передаваться как элементы, а не атрибуты, потому что содержимое столбцов не будет статическим.Пытается передать XML-данные в SQL как элементы (не атрибут)
Однако по какой-то причине, когда я пытаюсь передать данные в качестве элементов, я получаю значения NULL. Но когда я пытаюсь передать эти же данные как атрибуты, он работает и выглядит так, как предполагается. Я испытываю соблазн пожать плечами и просто двигаться дальше, но я беспокоюсь, что для меня это может пойти наперекосяк, если я сделаю это позже по дороге.
У меня уже есть некоторые атрибуты из этого XML, которые мне удалось передать как атрибуты, которые я планирую объединить с этими элементами, которые маскируются как атрибуты в одну таблицу. Это будет работать? И если это произойдет, будут проблемы в будущем?
Вот мой SQL-код, когда я пытаюсь передать элементы в качестве элементов:
SELECT *
FROM OPENXML (@hdoc, '/roll/voter', 2)
WITH (
id int,
[value] char(50),
[state] char(2))
Вот мой SQL-код, когда я пытаюсь передать элементы в качестве атрибутов:
SELECT *
FROM OPENXML (@hdoc, '/roll/voter', 1)
WITH (
id int,
[value] char(50),
[state] char(2))
Вот миниатюризированная версия документа XML:
<roll>
<voter id="400048" value="Yea" state="FL" />
<voter id="412516" value="Yea" state="CA" />
</roll>
Ссылка на xml d ocument через Google диск (очень маленький XML): https://drive.google.com/open?id=0B5VgOwWcGeLHaWctRU56Qlk3UWM
A screenshot of my SQL query, the table results, and the XML
Не уверен, чего вы пытаетесь достичь, но правильный синтаксис для первого: 'FROM OPENXML (@hdoc, '/ roll/voter', 2) WITH (id int '@id', [value] char (50) '@value', [state] char (2) '@state') 'или что-то в этом роде. – ZLK
@ZLK Используя псевдонимы, я смог выполнить передачу в качестве элементов. Нужны ли алиасы, чтобы элементы работали, но не нужны для атрибутов? –
Я не уверен, что понимаю, почему псевдонимы были необходимы для первого запроса. –