【发布时间】:2020-12-13 06:32:35
【问题描述】:
我有一个表Table_A 和一个存储过程Calculate_B 对Table_A 中的数据进行一些计算并相应地更新Table_B。
如何仅在Table_A 中新插入的行上运行存储过程Calculate_B 并在Table_B 中相应地插入新行
CREATE PROCEDURE Calculate_B
AS
----some sql statements-----
SELECT * FROM Table_A;
编辑1: 插入是由使用实体框架在数据库中添加数据的 Windows 应用程序制成的
【问题讨论】:
-
在
Table_A中插入行从何而来?你说你在table_A到UPDATEtable_b上进行了计算。INSERT语句在哪里?该 SQL 过程也没有告诉我们有关问题的任何信息。 -
如前所述,您不能。您必须在插入时执行此操作。您可以使用触发器(这需要一定程度的专业知识),也可以在插入语句中使用输出子句。然后,您需要与您的过程“共享”这些行(或将该逻辑移动到插入代码中)。
-
@SMor 我一直在研究触发器,但触发器不了解如何从触发器返回插入行的主键,然后将主键作为参数传递给存储过程跨度>
-
对于
IDENTITY值,最好在INSERT语句中使用OUTPUT子句,并将这些输出的行插入到表变量/临时表中。 -
请向我们展示表格和一些示例数据。就目前而言,我们只是在猜测。
标签: sql sql-server stored-procedures triggers