是,不过用批量插入时不行即:insert tableA select * from .... inserted里放的是每次要插入的记录 如: CREATE TRIGGER trig_user_insert ON tableA FOR INSERT AS insert tableB select user ,'中国',getdate() from inserted
declare @CustomerName varchar(20),@CustomerAdd varchar(200),@CustomerTel1 varchar(50), @CustomerCard varchar(20), @CustomerContent varchar(300), @PreDealEndTime datetime,@ModiDateTime datetime, @TurnDeptId int, @WorkPrg varchar(2),@Memo varchar(100) declare @Recid numeric(16), @intMax numeric(16)DECLARE authors_cursor CURSOR FOR SELECT CardNo,LinkMen,Content,LinkAddr,AcceptDate,LinkTel,RepairStation,Memo FROM Inserted OPEN authors_cursorFETCH NEXT FROM authors_cursor INTO @CustomerCard,@CustomerName,@CustomerContent,@CustomerAdd,@ModiDateTime,@CustomerTel1,@TurnDeptId,@Memo Set @CustomerContent = @CustomerContent + @Memo WHILE @@FETCH_STATUS = 0 BEGIN --PRINT 'Author: ' + @user_code + ' ' + @user_name select @intMax = (Select isnull(Max(RecId),0) from t_accept_record) set @Recid = @intMax + 1 if @TurnDeptId is null or @TurnDeptId = 0 begin set @WorkPrg = '1' set @TurnDeptId = 0 end else set @WorkPrg = '2' insert into t_accept_record ( RecId, ClassID, WorkPrg, CustomerName, CustomerAddr, CustomerTel1, CustomerCard, CustomerContent, --AcceptAgentId, AcceptDateTime, PreDealEndTime, TurnDeptId --ModiDateTime, --ModiAgentId ) values ( @RecId, '10', @WorkPrg, @CustomerName, @CustomerAdd, @CustomerTel1, @CustomerCard, @CustomerContent, --@AcceptAgentId, GetDate(), GetDate()+2, ---管理部添加成批业务,预计处理时间两天 cast (@TurnDeptId as int) --@modiDateTime, --@AcceptAgentId ) FETCH NEXT FROM authors_cursor INTO @CustomerCard,@CustomerName,@CustomerContent,@CustomerAdd,@ModiDateTime,@CustomerTel1,@TurnDeptId,@Memo Set @CustomerContent = @CustomerContent + @Memo END CLOSE authors_cursor DEALLOCATE authors_cursor反正我用游标 应该可以吧 大家看看! 谢谢
没怎么仔细看你的语句,其实很多时候用不着用游标的。 比如大力的经典语句。 declare @i int set @i = 0 update table1 set @i = @i + col1, col2 = @i
inserted里放的是每次要插入的记录
如:
CREATE TRIGGER trig_user_insert
ON tableA
FOR INSERT
AS
insert tableB select user ,'中国',getdate() from inserted
@CustomerCard varchar(20), @CustomerContent varchar(300),
@PreDealEndTime datetime,@ModiDateTime datetime,
@TurnDeptId int,
@WorkPrg varchar(2),@Memo varchar(100)
declare @Recid numeric(16), @intMax numeric(16)DECLARE authors_cursor CURSOR FOR
SELECT CardNo,LinkMen,Content,LinkAddr,AcceptDate,LinkTel,RepairStation,Memo FROM Inserted
OPEN authors_cursorFETCH NEXT FROM authors_cursor
INTO @CustomerCard,@CustomerName,@CustomerContent,@CustomerAdd,@ModiDateTime,@CustomerTel1,@TurnDeptId,@Memo
Set @CustomerContent = @CustomerContent + @Memo
WHILE @@FETCH_STATUS = 0
BEGIN --PRINT 'Author: ' + @user_code + ' ' + @user_name
select @intMax = (Select isnull(Max(RecId),0) from t_accept_record)
set @Recid = @intMax + 1
if @TurnDeptId is null or @TurnDeptId = 0
begin
set @WorkPrg = '1'
set @TurnDeptId = 0
end
else
set @WorkPrg = '2' insert into t_accept_record
(
RecId,
ClassID,
WorkPrg,
CustomerName,
CustomerAddr,
CustomerTel1,
CustomerCard,
CustomerContent,
--AcceptAgentId,
AcceptDateTime,
PreDealEndTime,
TurnDeptId
--ModiDateTime,
--ModiAgentId
)
values
(
@RecId,
'10',
@WorkPrg,
@CustomerName,
@CustomerAdd,
@CustomerTel1,
@CustomerCard,
@CustomerContent,
--@AcceptAgentId,
GetDate(),
GetDate()+2, ---管理部添加成批业务,预计处理时间两天
cast (@TurnDeptId as int)
--@modiDateTime,
--@AcceptAgentId
)
FETCH NEXT FROM authors_cursor
INTO @CustomerCard,@CustomerName,@CustomerContent,@CustomerAdd,@ModiDateTime,@CustomerTel1,@TurnDeptId,@Memo
Set @CustomerContent = @CustomerContent + @Memo
END
CLOSE authors_cursor
DEALLOCATE authors_cursor反正我用游标 应该可以吧 大家看看! 谢谢
比如大力的经典语句。
declare @i int
set @i = 0
update table1 set @i = @i + col1, col2 = @i