|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
raylian
註冊時間: 2006-08-09 文章: 25
第 1 樓
|
發表於: 星期二 十月 30, 2012 4:35 pm 文章主題: 请问:sql server触发器如何批量更新? |
|
|
1. 有sql server表setjg ,字段: partno varchar(25), flowno varchar(10),price numeric(10,2)
2.有sql server表setjg1,字段同上.
3.当修改setjg表中栏位price时触发更新setjg1,为什么只更新到最后一笔资料?
我的触发器代码如下:
USE [edpdbtms]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trjg] ON [dbo].[setjg]
FOR update
AS
Declare @partno varchar(25)
Declare @flowno varchar(10)
Declare @price numeric(10,2)
BEGIN
--更改
IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
begin
Declare temp_rec Cursor for
select b.partno,b.flowno,b.price,b.remark from deleted b
inner join inserted a on b.partno=a.partno and b.flowno=a.flowno
open temp_rec
Fetch next From temp_rec
into @partno,@flowno,@price,@remark
While @@fetch_status=0
begin
insert INTO setjgrec(partno,flowno,price)
values(@partno,@flowno,@price)
Fetch next From temp_rec
Into @partno,@flowno,@price
end
Close temp_rec
Deallocate temp_rec
end
END |
|
回頂端 |
|
|
raylian
註冊時間: 2006-08-09 文章: 25
第 2 樓
|
發表於: 星期三 十月 31, 2012 10:24 am 文章主題: |
|
|
没问题了,是这样,原来是前端只更新了一条记录. |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|