Хранимая процедура импорта данных из представления - PullRequest
0 голосов
/ 23 марта 2012

Я бы хотел выполнить синхронизацию - от просмотра к различным таблицам. Я имею представление БД (со связанного сервера), и я хотел бы сделать хранимую процедуру, которая разбивает представление БД на 2 таблицы Вид БД выглядит так:

  • person_id
  • person_type (=> «сотрудник» или «клиент»)
  • 1008 * Фамилия *
  • 1010 * Имя *
  • Адрес электронной почты

Таблицы «сотрудники» и «клиенты». Оба они имеют как минимум атрибуты «фамилия», «имя» и «электронная почта». Если строка данных уже существует в таблицах, произойдет обновление, в противном случае вставка. Атрибут 'person_type' решает, какую таблицу я должен использовать.

Я использую MS SQL Server 2008 R2.

Кто-нибудь может мне помочь в создании хранимой процедуры? Или подскажете?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Создайте 2 оператора слияния, по одному для выполнения каждой задачи.

Один оператор MERGE будет вставлять / обновлять / удалять в таблицу Employee, а другой будет делать то же самое с таблицей клиентов.

Пример:

MERGE YourCustomerTable TargetTable
USING (SELECT * FROM YourView WHERE Column = 'Customer') SourceTable ON TargetTable.CustomerID = SourceTable.CustomerID
WHEN MATCHED THEN UPDATE...........
WHEN NOT MATCHED THEN INSERT (ColumnA, ColumnB) Values (SourceTable.ColumnA, SourceTable.ColumnB)
0 голосов
/ 23 марта 2012

Из вашего описания я понимаю, что вам нужно создать две таблицы для клиента и сотрудника из представления БД.

Для того, чтобы сделать это быстро;создайте пакет ssis и используйте параметр «Условное разделение», чтобы разделить таблицу на основе столбца person_type.и вставьте его в соответствующую таблицу.

Вы можете сохранить этот пакет и запускать его всякий раз, когда вам нужно, или вы можете сделать его как задание

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