首页 > 请帮我写个sql server 2008 的触发器.

请帮我写个sql server 2008 的触发器.

写触发器的目的:update数据库表时,如果某个字段update后,他的值为null值,就不更新该字段的值,当然,其他字段可以更新。
我自己写了触发器,但是发生错误,错误如下:
必须声明标量变量 "@t_delete"。
该触发器的代码如下, 现在不知道该怎么办,求帮助?:

create trigger doNotUpdateIfValueIsNull
    on zl.dbo.t_loadingList
    for update
as
begin
    declare @table varchar(50)
    declare @colName varchar(50)
    declare @t_delete TABLE( colVal varchar(50),
                      indexs  integer
                    )
    set @table = 't_loadingList'

    DECLARE colNames CURSOR  FAST_FORWARD FOR  
        select name from syscolumns where id=object_id( @table )

    OPEN colNames   
        FETCH NEXT FROM colNames INTO @colName  
        WHILE @@FETCH_STATUS = 0  
         BEGIN  

            INSERT INTO @t_delete(colVal, indexs )
                   SELECT @colName,indexs  FROM deleted

            update inserted set @colName = @t_delete.colVal 
                where indexs = @t_delete.indexs and @colName = null

            FETCH NEXT FROM colNames INTO @colName
         END  
     CLOSE colNames
END

到目前为止,无法解决!

【热门文章】
【热门文章】