cs_Message_CreateUpdateDelete ALTERprocedure[dbo].cs_Message_CreateUpdateDelete ( @MessageIDint, @TitleNVarChar(1024), @BodyNVarChar(4000), @Actionint, @SettingsIDint ) AS SETTransactionIsolationLevelReadUNCOMMITTED /**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁, 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/ -- CREATE IF@Action=0 BEGIN SELECT'Not Implemented' -- 不执行 END -- UPDATE -- 更新 ELSEIF@Action=1 BEGIN UPDATE cs_Messages SET Title =@Title, Body =@Body WHERE MessageID =@MessageIDand SettingsID =@SettingsID END -- DELETE -- 删除 ELSEIF@Action=2 BEGIN SELECT'Not Implemented' END -- 不执行
cs_MarkPostAsRead ALTERPROCEDURE[dbo].cs_MarkPostAsRead ( @PostIDint, @UserNamenvarchar (50), @SettingsIDint ) AS SETTransactionIsolationLevelReadUNCOMMITTED /**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁, 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/ BEGIN -- If @UserName is null it is an anonymous user -- 如果用户名为空则为匿名用户 IF@UserNameISNOTNULL BEGIN DECLARE@SectionIDint DECLARE@PostDatedatetime -- Mark the post as read -- 标记帖子为已读 -- ********************* -- Only for PostLevel = 1 IFEXISTS (SELECT PostID FROM cs_Posts WHERE PostID =@PostIDAND PostLevel =1and SettingsID =@SettingsID) IFNOTEXISTS (SELECT HasRead FROM PostsReadx WHERE UserName =@UserNameand PostID =@PostIDand SettingsID =@SettingsID) INSERTINTO PostsRead (UserName, PostID, SettingsID) VALUES (@UserName, @PostID, @SettingsID) /**//*又碰到没见过的表了*/ END END