create proc up_GetNewsByCategory
@PageSize int,
@CategoryId nvarchar(16)
as
declare @sql nvarchar(1000)
set @sql = 'select top '+cast(@PageSize as nvarchar(2))+ ' * from News where CategoryId = '+@CategoryId+' order by AddedDate desc'
exec(@sql)
go执行:up_GetNewsByCategory 5,'News'
报错:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'News' 附近有语法错误。
create proc up_GetNewsByCategory
@PageSize int,
@CategoryId nvarchar(16)
as
declare @sql nvarchar(1000)
set @sql = 'select top '+cast(@PageSize as nvarchar(2))+ ' * from News where CategoryId = '''+@CategoryId+''' order by AddedDate desc'
exec(@sql)
go
alter proc up_GetNewsByCategory
@PageSize int,
@CategoryId nvarchar(16)
as
declare @sql nvarchar(1000)
set @sql = 'select top '+cast(@PageSize as nvarchar(2))+ ' * from News where CategoryId = '''+@CategoryId+''' order by AddedDate desc'
exec(@sql)
go
@PageSize int,
@CategoryId nvarchar(16)
as
declare @sql nvarchar(1000)
set @sql = 'select top '+cast(@PageSize as nvarchar(2))+ ' * from News where CategoryId = '''+@CategoryId+''' order by AddedDate desc'
exec(@sql)
go
News之前是没错误的,估计是后面@CategoryId的问题,给它加个引号
@PageSize int,
@CategoryId nvarchar(16)
as
set rowcount @PageSize
SELECT * FROM news WHERE CategoryId=@CategoryId ORDER BY AddedDate DESC
set rowcount 0
go
create proc up_GetNewsByCategory
@PageSize int,
@CategoryId nvarchar(16)
as
select top cast@PageSize * from News where CategoryId = @CategoryId order by AddedDate descreturn
第 1 行: 'News' 附近有语法错误。
create proc up_GetNewsByCategory
@PageSize int,
@CategoryId nvarchar(16)
as
select top (@PageSize) * from News where CategoryId = @CategoryId order by AddedDate descreturn
第 5 行: '(' 附近有语法错误。
2000的话,那就不能那样用了,你给你的SQL代码本身是没问题的,你最好重新整理一下你的问题。
你给的存储过程本身都是可以建立运行的,你再这样挤牙膏,估计没人会来帮你了。