关于存储过程和触发器!
为了保数据的删除历史,我想在表(relation)上建一个存储过程当表relation有删除动作时,根据一定的条件将这条删除记录送到relahist中去保,并删除这条记录,可是怎么样在这个过程中向表relahist插数据呢,怎么写这个过程呢?
还有怎么在ASP中调用这个过程呢?
create proc savehistory_proc
@temp varchar(40),
as select hkcard from customer where name=@temp
........
问题点数:100、回复次数:4Top
1 楼jinhaiou(jinhaiou)回复于 2002-03-28 17:02:00 得分 0
先用"select***"語句調出來再寫入就行.Top
2 楼hjhing(winding)回复于 2002-03-28 17:28:59 得分 50
//first insert the recordset into Table relahist
//then delete the recordset from table relation
create procedure hjhing
@para varchar(10)
AS
if Yes
begin
insert * into relahist
from relation
where YY=@para
delete relation
where YY=@para
end
//in asp
<%
set conn= server.CreateObject("ADODB.connection")
set rs=server.CreateObject("ADODB.recordset")
set comm=server.CreateObject("ADODB.command")
conn.Open "driver=sql server;server=dnwh;database=job;UID=sa;PWD="
set comm.ActiveConnection =conn
with comm
.ActiveConnection=conn
.CommandText="hjhing"
.CommandType=8
.Parameters.Append comm.CreateParameter ("para",advarChar,adParamInput,15,"hhhh")
end with
comm.Execute
%>
Top
3 楼dylan_tang(IT苦命人)回复于 2002-03-28 18:01:00 得分 10
写一个触发器就可以了,relation表的delete事件,执行insert就可以了,很简单的。Top
4 楼dylan_tang(IT苦命人)回复于 2002-04-15 14:12:24 得分 40
当表里的数据被删除时,会产生一张名字叫deleted的临时表,你只要将这张表里的数据在触发器里面用insert into relahist selete * from deleted插入就可以实现你的目的了,具体的语法就参考一下SQL Server的手册吧。Top




