Теория SQL Server об обновлении таблицы - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть веб-приложение asp.net, где пользователь может обновить таблицу в базе данных.Я хотел бы знать правильный метод сделать это.Как вы можете видеть на изображении ниже, красная заштрихованная область - это данные, которые у меня общие, которые я не нуждаюсь в обновлении.

enter image description here

Вот шаги, которые мне нужно предпринять:

  1. Не обновлять данные, если они существуют
  2. Удалить данныекоторый отсутствует в обновлении пользователя
  3. Добавление данных из пользовательского обновления, которых еще нет в таблице

Мне нужно также проверить эту таблицу, поэтому у меня будет триггер наЭто.Я хотел бы знать в теории, каков наилучший способ сделать такое обновление таблицы?

спасибо Аарону, который представил концепцию слияния.

Вот что за таблицаданные выглядят так:

foreignkey  model  primarykey
1            AA       1
1            AA1      2
1            AA3      3
23           B        4
22           C        5

Пользователь будет добавлять данные, которые выглядят следующим образом:

foreignkey  model  primarykey
1            A1       1
1            AA1      2
1            AA3      3
22           C        5

Как видно, первая строка была обновлена, а вторая - последняя строкабыл удален полностью.Не могли бы вы помочь мне с этим заявлением о слиянии?

1 Ответ

3 голосов
/ 01 ноября 2011

Да, это возможно, и это называется слиянием.См. Документацию для SQL Server Инструкция MERGE .

Если вы не хотите выполнять какие-либо обновления, если данные уже существуют, просто не добавляйте предложение WHEN MATCHED.ИСПОЛЬЗУЙТЕ WHEN NOT MATCHED BY SOURCE и WHEN NOT MATCHED BY TARGET, чтобы вставить / удалить пропущенные / удаленные строки.

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