USE [OneFactory]
GO
/****** Object: Trigger [dbo].[trg_Update] Script Date: 03/07/2015 08:54:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date: 2015-03-08
-- Description: <Description,,>
-- =============================================
ALTER TRIGGER [dbo].[trg_Update]
ON [dbo].[tbCCData]
AFTER UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
declare @ccflag nvarchar(50)
select @ccflag =ccflag from inserted
UPDATE [OneFactory].[dbo].[tbCCData_R]
SET
[HTSHR] = inserted.HTSHR
,[RKRQ] = inserted.RKRQ
,[MWMao] =inserted.MWMao
,[TongGuan] = inserted.TongGuan
,[ChuanMing] = inserted.ChuanMing
,[HangCi] = inserted.HangCi
,[PinMing] = inserted.PinMing
,[ChangDi] = inserted.ChangDi
,[YTDD] = inserted.YTDD
,[RKDun] = inserted.RKDun
,[RKYKD] = inserted.RKYKD
,[FHDun] = inserted.FHDun
,[FCYKD] = inserted.FCYKD
,[DCKC] = inserted.DCKC
,[CKYKD] = inserted.CKYKD
,[CKYKFlag] =inserted.CKYKFlag
,[ZHRD] = inserted.ZHRD
,[YDSHR] = inserted.YDSHR
,[Memos] = inserted.Memos
,[CCOK] = inserted.CCOK
,[CCEnd] = inserted.CCEnd
WHERE tbCCData_R.[CCFLag] = @ccflag
END
这样写是错的, 怎么写才能简单呢, 更新本行,除了 tbCCData_R.ID 不需要更新外
------解决思路----------------------
更新没有简便的方式,可以考虑动态执行
------解决思路----------------------
UPDATE [OneFactory].[dbo].[tbCCData_R]
SET
[HTSHR] = inserted.HTSHR
这个写法,是因为你用到了 inserted 中的数据,但是 from 中却没有该表