cs_Emails_TrackingSection ALTERPROCEDURE[dbo].cs_Emails_TrackingSection ( @PostIDINT, @SettingsIDint ) AS SETTransactionIsolationLevelReadUNCOMMITTED /**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁, 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/ DECLARE@SectionIDINT DECLARE@UserIDINT DECLARE@PostLevelINT DECLARE@ThreadIDINT -- First get the post info --首先获取帖子信息 SELECT @SectionID= SectionID, @UserID= UserID, @PostLevel= PostLevel, @ThreadID= ThreadID FROM cs_Posts (nolock) WHERE PostID =@PostIDand SettingsID =@SettingsID -- Check if its a new thread or not --检查是否是一个新的主题 IF (@PostLevel=1) BEGIN -- this is a new thread (1 & 2) --1表示主题 -- Check if this is a PM message --检查是否是个个人消息 IF (@SectionID=0) BEGIN -- we have to bind to the PM users for this ThreadID SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail, F.SubscriptionType FROM cs_TrackedSections F JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = F.UserID JOIN cs_PrivateMessages PM ON PM.UserID = F.UserID AND PM.ThreadID =@ThreadID WHERE F.SectionID IN (-1, 0) AND F.SettingsID =@SettingsIDand U.SettingsID =@SettingsIDand F.SubscriptionType &3<>0 END ELSEBEGIN SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail, F.SubscriptionType FROM cs_TrackedSections F JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = F.UserID WHERE F.SectionID =@SectionIDAND F.SettingsID =@SettingsIDand U.SettingsID =@SettingsIDand F.SubscriptionType &3<>0 END END ELSEBEGIN -- this is a reply to an existing post (2) --这是一个对帖子的回复,2表示回复的 -- Check if this is a PM message IF (@SectionID=0) BEGIN -- we have to bind to the PM users for this ThreadID SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail, F.SubscriptionType FROM cs_TrackedSections F JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = F.UserID JOIN cs_PrivateMessages PM ON PM.UserID = F.UserID AND PM.ThreadID =@ThreadID WHERE F.SectionID IN (-1, 0) AND U.SettingsID =@SettingsIDand F.SettingsID =@SettingsIDand F.SubscriptionType &3=3 END ELSEBEGIN SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail, F.SubscriptionType FROM cs_TrackedSections F JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = F.UserID WHERE F.SectionID =@SectionIDAND U.SettingsID =@SettingsIDand F.SettingsID =@SettingsIDand F.SubscriptionType &3=3 END END GO
cs_Emails_TrackingThread ALTERPROCEDURE[dbo].cs_Emails_TrackingThread ( @PostIDINT, @SettingsIDint ) AS SETTransactionIsolationLevelReadUNCOMMITTED /**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁, 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/ DECLARE@SectionIDINT DECLARE@UserIDINT DECLARE@PostLevelINT DECLARE@ThreadIDINT -- First get the post info --首先获取帖子信息 SELECT @SectionID= SectionID, @UserID= UserID, @PostLevel= PostLevel, @ThreadID= ThreadID FROM cs_Posts (nolock) WHERE PostID =@PostIDand SettingsID =@SettingsID -- Check if this is a PM message --检查是否是个人信息 IF (@SectionID=0) BEGIN -- we have to bind to the PM users for this ThreadID SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail FROM cs_TrackedThreads T JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = T.UserID JOIN cs_PrivateMessages PM ON PM.UserID = T.UserID AND PM.ThreadID =@ThreadID WHERE T.ThreadID =@ThreadIDand T.SettingsID =@SettingsIDand U.SettingsID =@SettingsIDand PM.SettingsID =@SettingsID END ELSEBEGIN SELECT U.cs_UserID as UserID, U.Email, U.EnableHtmlEmail FROM cs_TrackedThreads T JOIN cs_vw_Users_FullUser U (nolock) ON U.cs_UserID = T.UserID WHERE T.ThreadID =@ThreadIDand T.SettingsID =@SettingsIDand U.SettingsID =@SettingsID END GO
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步