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