Sql server 2008 TSQL使用当前插入的记录选择另一个表中的数据
非常新的TSQL 我有下表“tblinit”: 我想更新下面“tblRaw”中的“任务百分比”值 我的计划是使用一个TSQL存储过程,该过程在插入到“tblinit”时由触发器执行。存储过程将数据移动到“tblRaw”(合并或删除并插入)中,然后在过程完成时截断“tblinit”。tblInit仅用于暂存传入数据 我Sql server 2008 TSQL使用当前插入的记录选择另一个表中的数据,sql-server-2008,tsql,stored-procedures,triggers,scope-identity,Sql Server 2008,Tsql,Stored Procedures,Triggers,Scope Identity,非常新的TSQL 我有下表“tblinit”: 我想更新下面“tblRaw”中的“任务百分比”值 我的计划是使用一个TSQL存储过程,该过程在插入到“tblinit”时由触发器执行。存储过程将数据移动到“tblRaw”(合并或删除并插入)中,然后在过程完成时截断“tblinit”。tblInit仅用于暂存传入数据 我SCOPE\u IDENTITY和@@IDENTIY但没有完全掌握这个概念。范围是否由执行存储过程的触发器定义?在使用SCOPE\u IDENTITY和@@IDENTITY尝试我自己
SCOPE\u IDENTITY
和@@IDENTIY
但没有完全掌握这个概念。范围是否由执行存储过程的触发器定义?在使用SCOPE\u IDENTITY
和@@IDENTITY
尝试我自己的SELECT语句时,我总是返回一个“NULL”结果。引用的MSDN文章似乎返回与文章示例中指定的数据不相关的主键。显然我读错了什么。我想获取刚刚插入的记录,并在查询中使用它
本质上,如何在插入时自动更新john.smith的新百分比值,或者,如何完全添加新记录?鉴于您提到的各种概念,我必须承认,我对您的意图有点困惑 如果在update/delete中触发触发器后要从原始表中删除,那么就错了 如果出于性能原因,您只想在另一个表中保留一个运行总数,那么请查看“索引视图” 如果要向一个表中添加某些内容,然后更新另一个表并从原始表中删除,则需要查找一个队列或一个存储过程来对相应的表执行更新。您不需要对触发器和其他东西执行复杂的步骤 不知道身份信息是从哪里来的。你肯定不需要在这里 我认为你让事情变得比需要的更复杂了
我可能错了——请随意解释。我必须承认,鉴于您提到的各种概念,我对您的意图感到有点困惑 如果在update/delete中触发触发器后要从原始表中删除,那么就错了 如果出于性能原因,您只想在另一个表中保留一个运行总数,那么请查看“索引视图” 如果要向一个表中添加某些内容,然后更新另一个表并从原始表中删除,则需要查找一个队列或一个存储过程来对相应的表执行更新。您不需要对触发器和其他东西执行复杂的步骤 不知道身份信息是从哪里来的。你肯定不需要在这里 我认为你让事情变得比需要的更复杂了 我可能错了——请随意解释 如何在插入时自动更新john.smith的新百分比值 此触发器可用于执行以下操作:
create trigger tblinit_to_tblRaw
on tblinit
for insert
as
begin
update r
set r.Task_Percent = i.Task_Percent
from inserted i
join tblRaw r on i.UserID = r.UserID -- Join on Account_Num instead?
end
这不考虑新记录(tblRaw中没有现有匹配项)。为此,如果存在(…或merge
),您可能需要运行
如何在插入时自动更新john.smith的新百分比值
此触发器可用于执行以下操作:
create trigger tblinit_to_tblRaw
on tblinit
for insert
as
begin
update r
set r.Task_Percent = i.Task_Percent
from inserted i
join tblRaw r on i.UserID = r.UserID -- Join on Account_Num instead?
end
这不考虑新记录(tblRaw中没有现有匹配项)。为此,如果存在,您可能需要运行(…
或merge
我想你可能是对的!我使用的是SharePoint中web服务的INSERT语句…也许我应该研究merge语句而不是INSERT并转储中间表?我想你可能是对的!我使用的是SharePoint中web服务的INSERT语句…也许我应该investigate一个MERGE语句而不是INSERT并转储中间表?
create trigger tblinit_to_tblRaw
on tblinit
for insert
as
begin
update r
set r.Task_Percent = i.Task_Percent
from inserted i
join tblRaw r on i.UserID = r.UserID -- Join on Account_Num instead?
end