牛腩新闻发布系统笔记11:存储过程的编写

· 取出最新10条新闻(所属分类、新闻标题、发布时间)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray
-- Create date: 2011-8-27
-- Description:	取出最新10条新闻(所属分类、新闻标题、发布时间)
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectNewNews]
	
AS
BEGIN
	select top 10 n.id,n.title,n.createTime,c.[name] from news n
	inner join category c on n.caId=c.id
	order by n.createTime desc
END


· 取出10条热点新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray
-- Create date: 2011-8-27
-- Description: 取出10条热点新闻(评论回复最多的新闻)
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectHotNews]

AS
BEGIN
select top 10 n.id,n.title,n.createTime,c.[name], count(com.id) as comCount
    from news n
	inner join category c on n.caId=c.id
    inner join comment com on com.newsId=n.id
	group by  n.id,n.title,n.createTime,c.[name]
	order by n.createTime desc
END


· 根据类别ID取出该类别下的所有新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 20118-27
-- Description:	 根据类别ID取出该类别下的所有新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectByCaId] 
	@caid int
AS
BEGIN
	select n.id,n.title,n.createTime,c.[name] from news n
	inner join category c on n.caId=c.id and n.caId=@caid
	order by n.createTime desc
END


· 根据新闻ID取出该条新闻主体内容

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 2011-8-27
-- Description:根据新闻ID取出该条新闻主体内容
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectById]
	@id int
AS
BEGIN
	select title,[content],createTime,caId from news where id=@id
END


· 根据标题搜索新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
-- Author:		keithray
-- Create date: 2011-8-27
-- Description:	 根据标题搜索新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectByTitle] 
	@title varchar(100)
AS
BEGIN
	select top 10 n.id,n.title,n.createTime,c.[name] from news n
	inner join category c on n.caId=c.id
    where n.title like '%'+@title+'%'
	order by n.createTime desc
END


· 根据内容搜索新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 2011-8-27
-- Description:	 根据内容搜索新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_SelectByContent]
	
 @content varchar(1000)
AS
BEGIN
	select top 10 n.id,n.title,n.createTime,c.[name] from news n
	inner join category c on n.caId=c.id
    where n.content like '%'+@content+'%'
	order by n.createTime desc
END


· 增加新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 2011-8-27
-- Description:	增加新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_Insert]
	@title varchar(100),
	@content text,
	@caId int
AS
BEGIN
		INSERT INTO news (title, [content], caId)
		VALUES(@title,@content,@caId)
END


· 修改新闻

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 2011-8-27
-- Description:	修改新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_Update]
	@id int,
	@title varchar(100),
	@content text,
	@caId int
AS
BEGIN
	UPDATE news SET title = @title, [content] = @content, caId = @caid where id=@id
END


· 删除新闻(连同其下新闻评论一起删除)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:		keithray	
-- Create date: 2011-8-27
-- Description:	删除新闻(连同其下新闻评论一起删除)
-- =============================================
ALTER PROCEDURE [dbo].[news_Delete]
	@id int
AS
BEGIN
	--先删除评论
	delete comment where newsId=@id
   --再删除新闻本身
	delete news where id=@id
END


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值