sql - 触发器或 SP : what should I use in my case?

标签 sql sql-server sql-server-2005 stored-procedures triggers

我有一个由我们公司的其他团队编写的应用程序,它在一个表中插入数据。
假设他们将数据写入带有字段的表 Log1:

  • Id(自动生成的主键);
  • key 标识;
  • 值1;
  • 值2;
  • 值(value) 3。

  • 现在我需要在另一个表(Log2)中从他们那里得到另一个额外的记录,其中只有部分数据:
  • Id(这将是我自己的自动生成的 Id);
  • key 标识;
  • 值(value) 1。

  • 我看到了两种方法:
  • 创建触发器,将记录添加到 Log1 将自动在 Log2 中创建包含所需数据的记录;
  • 实现将接受 Log1 表的所有必需数据并在两个表中创建记录的 SP,然后要求那些应用程序作者使用 SP 而不是直接 INSERT 查询。

  • 您认为在这种情况下最好的方法是什么,为什么?

    非常感谢您的帮助。

    附言我正在使用 MS SQL 2005

    最佳答案

    选择选项 1。

    这意味着即使没有使用“正确”的存储过程接口(interface),表也将正确同步,并且插入多行会更容易和更有效(您将如何使用 SQL Server 2005 中的存储过程来做到这一点? -多次调用?先把所有数据都转成XML格式?)

    关于sql - 触发器或 SP : what should I use in my case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007036/

    相关文章:

    SQL - 修改查询以创建列

    sql - 重复更新时的mysql条件插入 - 多条记录

    php - Gobbly php 到可用的 SQL?

    c# - SQL 数据读取器 : Invalid attempt to read when no data is present

    asp.net - 数据库隔离模型

    c# - 替换sql文件的最佳步骤

    sql - 如何删除特定数据库特定时间的备份?我也不想给出文件的路径。有人可以指导我吗?

    sql-server - 用于获取性能统计信息的 SQL 命令

    sql-server - 为什么在启用时不应违反外键?

    sql-server - Microsoft SQL 2005 中的自然(人类字母数字)排序