表A:
id name password
1 zhangsan 123
2 lisi 123
表B:
id name password
表A:id为1的数据,如果password表更为456之后,相应的表B里面会插入一条数据为:id,zhangsan,456
触发器 触发器
id name password
1 zhangsan 123
2 lisi 123
表B:
id name password
表A:id为1的数据,如果password表更为456之后,相应的表B里面会插入一条数据为:id,zhangsan,456
触发器 触发器
解决方案 »
- 关于表多对多
- 如果获取某个视图的 字段名、别名、输入那个表、类型和长度
- SQL SERVER低版本如何使用在高版本下建立起来的数据库。例如SQL SERVER 2000如何使用在SQL SERVER 2008下创建的数据库,附加和还原均失败,谁有办法解决。
- sql问题
- 在Sql Server 2005中,如何比较两个结构相同的表的差异?
- 进销存问题请教
- 急问 数据库连接问题(连接池)!!
- 求助导出导入表的问题
- 请教一下 VFP里的DBF转EXCEL后 MEMO里的数据换行丢失怎么处理?
- 【100分】一道SQL面试题,大神求解惑!
- 求教一个SQL语句
- 如何解决这个问题而且有好的sql performance
create table A(
id int,
name varchar(30),
[password] varchar(30)
)
go
insert into A
select 1,'zhangsan','123'
union all
select 2,'lisi','123'
create table B(
id int,
name varchar(30),
[password] varchar(30)
) go
create procedure spOutput(
@password varchar(30)
)
as
begin
update A SET [PASSWORD]=@password
output inserted.id,inserted.name,inserted.password into B
WHERE ID=1
end; go
exec spOutput '456'
go
select * from B
(
ID INT,
NAME NVARCHAR(10),
PWD NVARCHAR(50)
)
INSERT INTO A
SELECT 1 ,'zhangsan','123' UNION ALL
SELECT 2 ,'lisi', '123'CREATE TABLE B
(
ID INT,
NAME NVARCHAR(10),
PWD NVARCHAR(50)
)
GOCREATE TRIGGER TriPwd_Update
ON A
for UPDATE
AS
BEGIN
if (update(PWD))
begin
INSERT INTO B select ID,NAME,PWD from inserted;
end
END
GOupdate A set PWD=345 where ID='1'
update A set NAME=345 where ID='2'select * from B
on A for update
As
declare @id int, @name varchar(30),@password varchar(30)
if Update(password)
begin
select @id = id,@name = name,@password=password from inserted
insert into B values(@id,@name,@password)
end
update a set password = 456 where id = 1