У меня есть таблица с именем TeacherTbl, которая выглядит так:
TeacherTbl:
TeacherID INT PRIMARY KEY
TeacherBlob XML
Поле TeacherBlob выглядит следующим образом:
<Teacher>
. . .
<TeacherClass>
<FormRoom> Room A</FormRoom>
<TotalStudents> 25 </TotalStudents>
<Subject> Mathematics </Subject>
<Student>
<StudentName> James </StudentName>
<StudentAge> 15 </StudentAge>
<StudentAddress> </StudentAddress>
</Student>
</TeacherClass>
</Teacher>
Я написал хранимую процедуру для навигации по этому XML и извлечения значений узлов TeacherClass и Subject в отдельные реляционные таблицы, которые вставляются в таблицы TeacherClass и Subject соответственно.
В основном я хочу выбрать идентификаторы из XML-файла TeacherBlob, которые не имеют существующих данных в таблицах TeacherClass и Subject (т. е. оператор INSERT в моей хранимой процедуре не выполнен). Я хочу выбрать идентификатор только тогда, когда родительский узел является учителем и имеет дочерний элемент TeacherClass (TeacherClass может не существовать для учителя).
Кроме того, я должен попытаться повторно вставить эти данные xml в узлы TeacherClass и Subject при условии, что данные еще не существуют в таблицах (что должно быть сделано в отдельном сценарии). Однако это не моя основная проблема - я изо всех сил пытаюсь выбрать идентификаторы, которые имеют Учитель и Учительский класс в TeacherBlob, учитывая, что я не знаком с XML как типом поля в T-SQL.
Любая помощь с этим будет здорово.
INT
! Что будет в следующем году? Предоставьте уменьшенный, но реалистичный автономный образец. Вы можете использовать мой код из ответа на соответствующий вопрос. Затем покажите нам ожидаемый результат. В данный момент нет возможности помочь вам... - person Shnugo   schedule 23.02.2017