try:
CREATE TRIGGER tri_test ON t_test FOR INSERT ,UPDATE AS 
DECLARE @beforesex varchar(8000),@aftersex varchar(8000),@rep varchar(8000) 
SELECT @rep = 编号 FROM deleted 
SELECT @beforesex= cast(TEXT字段 as varchar(8000)) FROM deleted 
SELECT @aftersex= cast(TEXT字段 as varchar(8000)) FROM inserted 
--上面这两个变量应该比较一下,不相同,再插入。
IF UPDATE(TEXT字段) 
BEGIN 
INSERT INTO t_testlog(更新时间,编号,改前值,改后值) VALUES (getdate(),@rep,@beforesex, @aftersex) 
END 

解决方案 »

  1.   

    --如果不行的话。
    INSERT INTO t_testlog(更新时间,编号,改前值,改后值) select getdate(),@rep,(select TEXT字段 from deleted) , (select TEXT字段 from inserted) 
      

  2.   

    --还不行的话
    INSERT INTO t_testlog(更新时间,编号,改前值,改后值) VALUES (getdate(),@rep,'', '')update a set a.改前值=b.TEXT字段,a.改后值=c.改后值 from t_testlog a, deleted b,inserted c where a.编号=b.编号 and a.编号=c.编号
      

  3.   

    --还不行的话
    INSERT INTO t_testlog(更新时间,编号) VALUES (getdate(),@rep)update a set a.改前值=b.TEXT字段,a.改后值=c.改后值 from t_testlog a, deleted b,inserted c where a.编号=b.编号 and a.编号=c.编号
      

  4.   

    SQL SERVER企业管理器-》右键 服务器-》属性-》连接选项页-》查询超时设定改为0.
      

  5.   

    企业管理器—>工具—>选项—>在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡—>连接设置—>在 查询超时(秒) 后面的框里输入一个较大的数字或改为0。