📄 cs_posts_getpostidbyfilter.prc
字号:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cs_Posts_GetPostIDByFilter]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[cs_Posts_GetPostIDByFilter]
GO
--------------------------------------------------------------------------------
-- cs_Posts_GetPostIDByFilter
-- Returns a list of filtered PostIDs
--------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[cs_Posts_GetPostIDByFilter]
(
@SettingsID int,
@FilterType int,
@FilterValue varchar(255)
)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
-- local variables
DECLARE @PostSetSize int
IF @FilterType = 1 -- StalePoints
BEGIN
-- filter value represent size of post set
SET @PostSetSize = CONVERT(int, @FilterValue)
-- limit number of posts to work with (non-positive = ALL)
IF @PostSetSize > 0
SET ROWCOUNT @PostSetSize
-- get posts to work with
SELECT P.PostID
FROM cs_Posts P
INNER JOIN cs_Sections S -- exclude private messages
ON P.SectionID = S.SectionID
WHERE P.SettingsID = @SettingsID
AND S.EnablePostPoints = 1 -- ignore excluded sections
AND P.IsApproved = 1 -- ignore posts awaiting moderation
ORDER BY P.PointsUpdated -- start with "stalest" posts
-- limit has been used; reset to default
IF @PostSetSize > 0
SET ROWCOUNT 0
END
RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE on [dbo].[cs_Posts_GetPostIDByFilter] to [public]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -