cs_Censorship_CreateUpdateDelete --审核制度创建更新删除
ALTER  proc [dbo].cs_Censorship_CreateUpdateDelete --审核制度创建更新删除
(  /**//*即是一些受限制的词语等,比如FUCK*/
      @Word            nvarchar(40)
    , @DeleteWord     bit = 0
    , @Replacement    nvarchar(40)
    , @SettingsID int
)
as
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
SET NOCOUNT ON
/**//*当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。
当 SET NOCOUNT 为 OFF 时,返回计数。即使当 SET NOCOUNT 为 ON 时,也更新 
@@ROWCOUNT 函数。*/

if( @DeleteWord > 0 )
BEGIN
    DELETE FROM
        cs_Censorship
    WHERE
        Word = @Word and SettingsID = @SettingsID
    RETURN
          /**//*删除某记录*/
END
ELSE
BEGIN
    UPDATE cs_Censorship SET
        Replacement    = @Replacement
    WHERE
        Word    = @Word and SettingsID = @SettingsID
             /**//*更新替换内容,比如说本来是用***替换的,现在换其他东西替换*/
    IF( @@rowcount = 0 ) --如果更新受影响行数为0
    BEGIN
    INSERT INTO cs_Censorship (
        Word, Replacement, SettingsID
    ) VALUES (
        @Word, @Replacement, @SettingsID
    )
        /**//*插入新的限制词语*/
    END
END

cs_Censorships_Get
ALTER  proc [dbo].cs_Censorships_Get
(
    @Word    nvarchar(40) = '',
    @SettingsID int
)
as
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/

    select
        *
    from
        cs_Censorship
    WHERE
        SettingsID = @SettingsID and (Word = @Word or (@Word = '' AND 1=1))
        /**//*查询符合条件的记录 -_=!不明白为什么还加个1=1,我总感觉第一个1好象比第二个1
          好象来得大点,难道是大写的L或者I吗?当我没说.*/



GO

转载于:https://www.cnblogs.com/ruanbl/archive/2006/09/05/494883.html

最新文章

  1. 多店铺多用户商城可以用来干嘛?适合什么样的商业模式?
  2. 百年名校史上第一桩:博士论文抄袭,剥夺学位,涉事中国学者已在国内教书7年...
  3. Linux系统下配置Java环境
  4. 云原生除了K8S、微服务,还有...?
  5. Function.prototype.bind相关知识点
  6. ucloud对象存储装宝塔_使用UCloud优刻得云主机和宝塔面板快速搭建WP个人博客网站教程...
  7. [Python]输入与输出
  8. Hibernate多列作为联合主键(六)
  9. srve0255e尚未定义要怎么办_刺激战场:如何免费获得自定义房卡?方法有三种,内含国服福利!...
  10. mac下nginx安装及与tomcat简单配置
  11. Java compiler level does not match the version of the installed Java project facet.问题
  12. 怎样快速打出初中常用的化学反应方程式
  13. 解决CMake Error : file does not recognize sub-command GL0B or GL0B_RECURSE 原因分析
  14. 利用高德云图开发附近的人功能
  15. Elasticsearch:从搜索中获取选定的字段 fields
  16. python人民邮电出版社_人民邮电出版社 - 主页
  17. 网络通信安全部分笔记二
  18. 使用Unity编写传统ARPG游戏人物操作方式(二)
  19. SuperMap三维复杂模型建模之3D极坐标建模——原理篇
  20. TIA博途中如何设计报警功能块FB,来简化编写离散量报警程序的时间?

热门文章

  1. 10个T的硬盘都装不下,这几个资源网站的优质资源真的超多
  2. 推荐双11书单,我们一起共读 36 + 1 本书
  3. jQuery 实现小米手风琴图片案例
  4. 蓝桥杯--鲁卡斯队列
  5. AndroidStuodio编译失败报错:Entry name ‘assets/sm2/t.jks‘ collided解决方案
  6. Google Code Jam 2010 Qualification Round 资格赛 Problem A. Snapper Chain 问题A.按扣链条
  7. BUAA 1489
  8. 自建邮件服务器无法发附件,搭建好服务器后不能够发邮件也不能收邮件
  9. 先有鸡还是先有蛋的争论
  10. excel 常用技巧