【问题标题】:Logging data that could not be processed for later review记录无法处理以供日后查看的数据
【发布时间】:2012-12-21 23:57:31
【问题描述】:

我有一个 SQL Server 存储过程,为两个独立的系统执行数据库集成。简单来说,就是根据另一个数据库表的记录和一些业务逻辑,在一个数据库表中插入数据。由于缺少属性或违反业务规则或其他原因,无法插入某些数据。此过程计划在两个小时内运行。

程序完成后,我需要未处理数据的列表来查看数据问题。从存储过程中导出数据的最佳方式是什么?我研究了两种可能性:

  1. 通过 RAISERROR 记录

  2. 返回未处理的数据作为存储过程的输出

它们看起来都用起来不舒服。

我能以某种方式使用报告服务吗?还是创建包含未处理记录的单独表更好?

【问题讨论】:

  • 你是在逐行插入吗?
  • 我会使用单独的表格
  • 嗯,我ve planned to insert the whole bunch of records using subselect. But Im 现在正在研究业务规则,可能需要逐行处理数据。问题的范围有什么变化?
  • 我也会使用单独的表格,它易于使用和研究错误统计。同样在这种情况下,您不必将不正确的数据传输回服务器(调用存储过程),以某种方式对其进行处理并记录(特别是如果您想将其记录到数据库中)。我们使用单独表格的方法,并为此在报告服务中创建报告,这对于监控过程非常有用。

标签: sql-server stored-procedures


【解决方案1】:

如果您按照 Raj 的要求逐行插入数据,那么您可以在 INSERT 语句中使用 OUTPUT 子句。因此,您将能够轻松记录成功的插入 - MSDN link here。

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2017-05-23
    • 2021-10-03
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    相关资源
    最近更新 更多