У меня есть таблица сСоздание таблицы со столбцами из значений строк с динамическими значениями
ID Text
-----------
1 Name
2 Surname
3 D.O.B.
4 City
другой таблице «Свойства» «людей»
ID Code
-----------
1 MN0001
2 ST0001
3 ST0002
И другой таблице «propertiesPeople», что ассоциированном что 2 таблицы. У человека может быть неопределенное количество свойств.
ID IDPerson IDProp Value
----------------------------------
1 1 1 Peter
2 1 2 Johnson
3 2 1 John
4 2 3 01/01/1977
5 1 4 California
6 3 1 Julian
7 3 2 Ross
8 3 4 Osaka
Перед установкой людей/людей, мне нужно проверить, что нет никакого другого один с теми же свойствами (свойства для проверки является переменным и она будет храниться на другой стол «propertiesToValidate»)
Я думал сделать динамический SQL делает петлю вокруг «propertiesToValidate» и это Выберите закончу что-то вроде:
SELECT p1.Value, p2.Value, p3.Value
FROM properties p1
INNER JOIN properties p2 ON p1.IDPerson=p2.IDPerson
INNER JOIN properties p3 ON p1.IDPerson=p3.IDPerson
WHERE p1.IDProp = 1
AND p2.IDProp = 2
AND p3.IDProp = 4
и вставить это в височную таблицу, которая бы закончить что-то вроде этого:
Value1 Value2 Value3
--------------------------------
Peter Johnson California
Julian Ross Osaka
После этого я сделаю пересечение со столом с новым человеком/людьми, которые я хочу вставить.
Я думаю, что создание динамической строки и вызов с помощью sp_executesql - не изящный способ сделать это (и сложный для будущего в будущем), но я не могу реализовать другой способ сделать это. Есть ли другой способ?
Человек был бы новый один. Я не хочу создавать нового человека, который создал бы, например, 3 новые строки: 9,4,1 'Peter' |||| 9,4,2, Johnson |||| 9,4,4, 'California'. Число и значение свойств для проверки зависят от другой таблицы. – popiandro
@popiandro Итак, покажите пример этой другой таблицы, затем – lad2025
В этой таблице будут только идентификаторы свойств для проверки (ну, у нее будет больше столбцов, но это не важно для вопроса) – popiandro