循环存储过程

时间:2017-08-29 15:22:23

标签: sql sql-server-2008 tsql stored-procedures

我是Sql server的新手。我有一个存储过程。我需要从table1中选择记录到日期中的特定时间,并在该table1中更新状态为true。还需要从表2中选择记录并从中删除在将所选记录插入表3之后,每个记录满足来自该表2的条件。 任何人都有解决方案,请帮助。谢谢。

var correlation_id = Guid.NewGuid().ToString();
msg.add("CORRELATION_ID", correlation_id);

2 个答案:

答案 0 :(得分:0)

没有任何真实的样本数据......这看起来就像你想要做的那样。

update table1
set someCol = 'someVal'
where anotherColumn in (select anotherColumn from table1 where <condition>)


delete t2
from table2 t2
inner join
table3 t3 on t3.colID = t2.colID
where <some condition>

答案 1 :(得分:0)

您希望根据条件(时间&gt; 1:00:00)更新表1中的状态列。然后,您希望根据相同的条件从Table2中删除记录,并在表3中插入已删除的记录。

CREATE PROC dbo.DetailsUpdate
AS 
BEGIN
UPDATE table1
SET [Status]= 'True'
WHERE CAST(Stime AS TIME) > '01:00:00'

DELETE FROM table2
OUTPUT deleted.* INTO Table3
WHERE CAST(Stime AS TIME) > '01:00:00'

END