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
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
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