0
我必须在名为“第一”的表中插入值,但在插入值之前,我必须检查该行是否存在,是否存在以下注册的“名称”。如果行值存在那里,那么我必须删除该行并将该行中存在的值插入到名为“second”的不同表中。然后,我必须将我的当前值插入到“第一个”表格中。检查现有表插入一列,值是否存在或不存在?
我使用SQL Server 2005
我必须在名为“第一”的表中插入值,但在插入值之前,我必须检查该行是否存在,是否存在以下注册的“名称”。如果行值存在那里,那么我必须删除该行并将该行中存在的值插入到名为“second”的不同表中。然后,我必须将我的当前值插入到“第一个”表格中。检查现有表插入一列,值是否存在或不存在?
我使用SQL Server 2005
这在我看来,你要创建历史表。它通常以触发完成,因为它涵盖了所有可能的场景。
这里是你可以从Java调用插入或更新首先存储过程:
create proc ReplaceName (@Name varchar(100), @Value1 varchar(100), @Value2 varchar(100))
as
set nocount on
-- try to update Name with new values
update [First]
set Value1 = @Value1,
Value2 = @Value2
where Name = @Name
-- If it does not exist
if @@rowcount = 0
begin
-- Insert new row
insert into [First] (Name, Value1, Value2)
values (@Name, @Value1, @Value2)
end
这是保存旧副本到第二触发:
create trigger HistoryFirst on [First]
after insert, update
as
set nocount on
insert into [Second] (Name, Value1, Value2)
select Name, Value1, Value2
from Deleted
我可以做到这一点Java代码,这将是漫长的。所以,我正在寻找一个有用的查询 – ravi 2012-04-11 08:16:59
您使用的是哪个数据库?编辑你的问题,把它的名字,人们将能够帮助。 – GrandMasterFlush 2012-04-11 08:19:31
试过了什么? – Virus 2012-04-11 08:23:54