【问题标题】:Stored procedure import data from view存储过程从视图中导入数据
【发布时间】:2012-03-23 10:42:43
【问题描述】:

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

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

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

我使用的是 ms sql server 2008 r2。

谁能帮我创建存储过程?或者给个提示?

提前致谢

【问题讨论】:

  • 到目前为止你有什么收获?

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


【解决方案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)

【讨论】:

    【解决方案2】:

    根据您的描述,我了解到您需要从数据库视图为客户和员工创建两个表。

    为了让这个更快;创建一个 ssis 包并使用“条件拆分”选项根据 person_type 列拆分表。并将其插入到对应的表中。

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

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多