時々更新フィールドは、いくつかの条件に基づいて、別のテーブルを更新する必要性が高まっている、楽しい上のストアドプロシージャを呼び出すために、この時間は、ここではSQL Serverのストアドプロシージャです
use Manager
declare my_cursor cursor scroll dynamic --scroll表示可以向前或向后移动 dynamic:表示可写也可读,
for
select user_id,address from dbo.teacher --定义my_cursor 游标
open my_cursor --打开游标
declare @address nvarchar(128) --定义一个变量
declare @id nvarchar(128) --定义一个变量
fetch next from my_cursor into @id,@address --游标停在第一条记录前面,第一次执行,测试有没有记录存在
while @@fetch_status=0 --取数据,直到-2即没有记录
begin
PRINT @id+' '+@address --fetch next from my_cursor
update dbo.electric set address=@address where user_id=@id;--更新另外一个表中的数据
update dbo.water set address=@address where user_id=@id;--更新另外一个表中的数据
FETCH NEXT FROM my_cursor INTO @id,@address
end
--fetch first from my_cursor into @name
--print @name
--update temp set F9='zzg' where current of my_cursor
/* delete from 个人资料 where current of my_cursor */
--commit;--提交事务
close my_cursor--关闭游标
deallocate my_cursor--释放资源
トリガー
更新データと、データテーブルの変更、他のテーブル内のデータを更新する必要がある、この時間は、トリガー価格は、その後にデータを記述する必要はありません
削除トリガー
BEGIN
IFアップデート(USER_IDを) -削除または更新トリガ
可変翼- ; DECLAREは、VARCHAR(50)@id
= ID @選択deteledからUSER_IDと、 -deteled 現在の行表す削除データ
USER_ID = @ ID削除dbo.electricと、 - テーブルを更新するための追加データを
DELETE dbo.water USER_ID = @ ID; - テーブル更新のための追加データ
ENDの
更新トリガを(教師この例では、テーブル内のアドレスを変更することで、更新アドレスの他のテーブルをトリガ)
BEGIN
IF更新(アドレス)
DECLARE @ VARCHAR ID(50);
DECLARE @address VARCHAR(50)
に挿入ID = USER_IDからSELECT @;変更されたデータを-inserted現在の行が表す
挿入からアドレス=アドレス@選択; -inserted 変更されたデータは、現在の行を表し
更新dbo.electricをUSER_ID =アドレス@セットアドレス= @ ID; - テーブルを更新するための追加データ
アドレス@セットアドレスdbo.water更新= USER_ID = @ ID; - テーブル更新のための追加データ
ENDを