cs_gallery_Search_PostReindex///cs_GetAnonymousUserID///cs_GetSectionSubscriptionType///cs_GetSectio...

本文提供了多个SQL存储过程的例子,包括获取帖子总数、用户订阅类型等操作,并详细解释了使用Read Uncommitted隔离级别的原因及作用。
ContractedBlock.gifExpandedBlockStart.gifcs_GetTotalPostCount
None.gifALTER    PROCEDURE [dbo].cs_GetTotalPostCount
None.gif(
None.gif    
@SettingsID int
None.gif)
None.gif
None.gif 
AS
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif 
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
None.gif    
SELECT TOP 1 
None.gif        TotalPosts 
None.gif    
FROM 
None.gif        forums_Statistics 
where SettingsID = @SettingsID
ExpandedBlockStart.gifContractedBlock.gif
/**//*我在数据库里好象没看过这张表*/
None.gif
None.gif
None.gif
ContractedBlock.gifExpandedBlockStart.gifcs_GetSectionSubscriptionTypes
None.gifALTER   procedure [dbo].cs_GetSectionSubscriptionTypes
None.gif(
None.gif    
@UserID int,
None.gif    
@SettingsID int
None.gif)
None.gif
AS
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif 
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
None.gif
SELECT SubscriptionType, SectionID FROM cs_TrackedSections WHERE UserID=@UserID and SettingsID = @SettingsID
ExpandedBlockStart.gifContractedBlock.gif
/**//*获取某用户的所有订阅*/
ContractedBlock.gifExpandedBlockStart.gifcs_GetAnonymousUserID
None.gifALTER  Proc [dbo].cs_GetAnonymousUserID
None.gif(
None.gif    
@SettingsID int,
None.gif    
@UserID int output
None.gif)
None.gif
as
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif 
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
None.gif
Select @UserID = cs_UserID FROM cs_vw_Users_FullUser where SettingsID = @SettingsID and IsAnonymous = 1
ExpandedBlockStart.gifContractedBlock.gif
/**//*获取匿名用户的ID*/
None.gif
ContractedBlock.gifExpandedBlockStart.gifcs_gallery_Search_PostReindex
None.gifALTER  PROCEDURE dbo.cs_gallery_Search_PostReindex 
None.gif(
None.gif    
@RowCount int,
None.gif    
@SettingsID int
None.gif)
None.gif
AS
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif 
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
None.gif
SET ROWCOUNT @RowCount
None.gif
None.gif
SELECT
None.gif    T.
*,
None.gif    SortOrder 
= 1,
None.gif    P.PostID,
None.gif    P.ParentID,
None.gif    P.Subject,
None.gif    P.Body,
None.gif    P.FormattedBody,
None.gif    P.PostLevel,  P.PostName, P.ApplicationPostType, P.UserTime,
None.gif    P.PostPropertyNames 
as PostPropertyNames, P.PostPropertyValues as PostPropertyValues,
None.gif    P.Points 
as PostPoints,
None.gif    Username 
= P.PostAuthor, P.UserID,
None.gif    P.PostConfiguration,
None.gif    AttachmentFilename,ContentType, IsRemote, 
[Height][Width], FriendlyFileName, ContentSize, [FileName],p.Created,
None.gif
--    AttachmentFilename = ISNULL ( (SELECT [FileName] FROM cs_PostAttachments WHERE PostID = P.PostID), ''),
None.gif
    Replies = (SELECT COUNT(P2.PostID) FROM cs_Posts P2 (nolock) WHERE P2.ParentID = P.PostID AND P2.PostLevel != 1)
None.gif
FROM 
None.gif    cs_vw_PostsWithAttachmentDetails P (nolock),
None.gif
--    cs_Posts P (nolock),
None.gif
    cs_Threads T,
None.gif    cs_Sections F
None.gif
WHERE
None.gif    F.SectionID 
= P.SectionID AND
None.gif    F.IsActive 
= 1 AND
None.gif    F.IsSearchable 
= 1 AND 
None.gif    P.IsApproved 
= 1 AND
None.gif    T.ThreadID 
= P.ThreadID and 
None.gif    P.IsIndexed 
= 0 and
None.gif    F.SettingsID 
= @SettingsID and
None.gif    F.ApplicationType 
= 2 AND
None.gif    P.PostLevel 
= 1
None.gif
ORDER BY
None.gif    T.ThreadDate 
DESC
None.gif

ContractedBlock.gifExpandedBlockStart.gifcs_GetSectionSubscriptionType
None.gifALTER   procedure [dbo].cs_GetSectionSubscriptionType
None.gif(
None.gif    
@UserID int,
None.gif    
@SectionID int,
None.gif    
@SettingsID int,
None.gif    
@SubType int OUTPUT
None.gif)
None.gif
AS
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif 
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
None.gif
SELECT SubscriptionType FROM cs_TrackedSections WHERE SectionID=@SectionID AND UserID=@UserID and SettingsID = @SettingsID
ExpandedBlockStart.gifContractedBlock.gif
/**//*获取某版块/博客的订阅类型*/
None.gif

转载于:https://www.cnblogs.com/ruanbl/archive/2006/09/20/509736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值