首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server 2008中,在向表中插入一些值后更新表

在SQL Server 2008中,在向表中插入一些值后更新表
EN

Stack Overflow用户
提问于 2013-03-13 18:46:59
回答 2查看 661关注 0票数 0

我正在尝试在SQL Server2008中编写一个存储过程,它在向表中插入一些值之后更新表。

我的存储过程从DMV获取值并将其存储在表中。在插入查询之后的相同过程中,我为同一个表编写了一个更新查询。

插入结果填充得很好,但更新的结果正在丢失。

但是,当我尝试在存储过程中只执行插入操作,并且手动执行update查询时,一切都很正常。

为什么会发生这样的事情?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 19:08:40

这应该不会有什么问题。

下面的代码按预期工作。

代码语言:javascript
复制
create procedure dbo.test

as

begin 

create table #temp (
name varchar(100) ,
id int
)

insert #temp
select name ,
       id 
from master..sysobjects

update #temp

set name='ALL Same'

from #temp

select * from #temp

drop table #temp

end
go
票数 0
EN

Stack Overflow用户

发布于 2013-03-13 21:05:07

最好的方法是使用TriggerAFTER UPDATE触发器示例如下:

代码语言:javascript
复制
ALTER TRIGGER [dbo].[tr_MyTriggerName]
   ON [dbo].[MyTableName] AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
    --if MyColumnName is updated the do..
    IF UPDATE (MyColumnName) 
    BEGIN

        UPDATE MyTableName
        SET    AnotherColumnInMyTable = someValue
        FROM   MyTableName  
               INNER JOIN Inserted  
               ON MyTableName.PrimaryKeyColumn = Inserted.PrimaryKeyColumn 
    END
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15383132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档