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

发布于 2022-09-01 15:56:34 字数 1064 浏览 12 评论 0

写触发器的目的: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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不再见 2022-09-08 15:56:34

到目前为止,无法解决!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文