存储过程从视图导入数据

时间:2012-03-23 10:42:43

标签: sql sql-server database stored-procedures view

我想做同步工作 - 从视图到不同的表。 我有一个DB视图(来自链接服务器),我想创建一个存储过程,将db视图拆分为2个表。 db视图如下所示:

  • person_id
  • person_type(=>'员工'或'客户')
  • 名字
  • 姓名
  • 电子邮件

表格是“员工”和“客户”。它们都至少具有“姓氏”,“名字”和“电子邮件”属性。 如果表中已存在数据行,则会有更新,否则为插入。属性'person_type'用于决定我必须使用的女巫表。

我使用ms sql server 2008 r2。

有人可以帮我创建存储过程吗?或者给我一个提示?

提前致谢

2 个答案:

答案 0 :(得分:1)

创建2个合并语句,一个用于执行每个任务。

一个MERGE语句将插入/更新/删除到Employee表中,另一个将对Customer表执行相同的操作。

示例:

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)

答案 1 :(得分:0)

根据您的描述,我了解您需要从DB视图为Customer和employee创建两个表。

使这快速;创建一个ssis包并使用“条件拆分”选项根据person_type列拆分表。并将其插入相应的表格。

您可以保存此软件包并在需要时运行它或者您可以将其作为工作