请帮我写个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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
到目前为止,无法解决!