if exists(select 1 from sysobjects where name = 'GetNewsCount' and type = 'P')
drop proc GetNewsCount
go
CREATE PROCEDURE GetNewsCount
@title nvarchar
as
select count(*) from cdt_news_news where title like '%'+@title+'%'
go
select count(*) from cdt_news_news where title like '%北京%'
exec GetNewsCount 北京
--这样写查询出来的话 是错误的结果。
if exists(select 1 from sysobjects where name = 'GetNewsCount' and type = 'P')
drop proc GetNewsCount
go
CREATE PROCEDURE GetNewsCount
@title nvarchar
as
select count(*) from cdt_news_news where title like '%'+@title+'%'
go
select count(*) from cdt_news_news where title like '%北京%'
exec GetNewsCount '北京'
--查询出来结果还是不对
if exists(select 1 from sysobjects where name = 'GetNewsCount' and type = 'P')
drop proc GetNewsCount
go
CREATE PROCEDURE GetNewsCount
@title varchar(200)
as
select count(*) from cdt_news_news where title like '%'+@title+'%'
go
select count(*) from cdt_news_news where title like '%北京%'
exec GetNewsCount 北京
--这个查询出来是正确的
看来问题是出在nvarchar上了,不知道是什么原因???/
if exists(select * from sysobjects where name='GetNewsByPage' and type='p')
drop proc GetNewsByPage
go
create proc GetNewsByPage
@title varchar(300),--要查询的标题
@pageviewcount int,--这个是页面显示的条数
@pagesize int --这个当前页
as
declare @tempNews table
(
tempID int identity,
newsid int
)
declare @maxRows int
set @maxRows=@pageviewcount * @pagesize--这个可以显示到多少行
set ROWCOUNT @maxRows
insert into @tempNews(newsid)
select id from cdt_news_news where title like '%'+@title+'%' order by addtime desc
set rowcount @pageviewcount
select n.title,n.id,n.infile,n.f_name,n.addtime from @tempNews t inner join cdt_news_news n
on t.newsid=n.id where tempId>(@pagesize-1)*@pageviewcount
set rowcount 0
exec GetNewsByPage 北京,10,1 --这个就正确了!!