小白一枚,求大神帮忙解答几个出发器的问题

照林 2018-03-15 09:18:25
1、服务器是SQL2005,没开远程桌面,可以SQL server management studio 2008连接到服务器,可以在数据库里添加触发器吗?
2、想添加一个触发器“禁止删除表的行”
3、求代码
4、我自己找了一个,在分析的时候总是语法错误,请指教
Create trigger trg_del on dbo.jj_b
instead of delete
AS
BEGIN
declare @cou int
select @cou=id(*) from deleted;
if (@cou>0)
RAISERROR ('数据不允许删除!', 16, 1)
END

...全文
274 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 版主 2018-03-15
  • 打赏
  • 举报
回复
引用 6 楼 kdwzhl 的回复:
非常感谢!!!
帮到你记得贴贴哦
照林 2018-03-15
  • 打赏
  • 举报
回复
非常感谢!!!
二月十六 版主 2018-03-15
  • 打赏
  • 举报
回复
引用 4 楼 kdwzhl 的回复:
权限是SA,添加完就直接执行就可以了吗?不需要再服务器上保存吗?
对直接执行,不需要保存,这个语句就是创建触发器的语句,执行完了也就创建完了
照林 2018-03-15
  • 打赏
  • 举报
回复
权限是SA,添加完就直接执行就可以了吗?不需要再服务器上保存吗?
照林 2018-03-15
  • 打赏
  • 举报
回复
declare @cou int 这句是设一个数值变量吧 能解释一下下面几行是什么意思吗,跟我找到的不是一样吗? select @cou = count (1) from deleted; if (@cou > 0)
二月十六 版主 2018-03-15
  • 打赏
  • 举报
回复
引用 2 楼 kdwzhl 的回复:
declare @cou int 这句是设一个数值变量吧 能解释一下下面几行是什么意思吗,跟我找到的不是一样吗? select @cou = count (1) from deleted; if (@cou > 0)
变量楼主理解的对; 代码不同主要是select @cou=id(*) from deleted; 这句,id(*),是错误的,统计行数用count()
二月十六 版主 2018-03-15
  • 打赏
  • 举报
回复
1、可不可以创建触发器,要看登录用户的权限。 2、
CREATE TRIGGER trg_del ON dbo.ta
    INSTEAD OF DELETE
AS
    BEGIN
        DECLARE @cou INT
        SELECT  @cou = COUNT(1)
        FROM    deleted;
        IF ( @cou > 0 )
            RAISERROR ('数据不允许删除!', 16, 1)
    END
照林 2018-03-15
  • 打赏
  • 举报
回复
什么叫贴贴?不懂啊。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧