【发布时间】:2015-03-31 21:32:48
【问题描述】:
我想自定义这个存储过程,以防万一那个参数值@TownId 为空返回表中的所有数据。否则返回正确的数据。 在我的表中,TownId 列中没有空值。有 nvarchar 值。 如果我从客户端发送@TownId=null,我没有成功获取所有数据
ALTER PROCEDURE dbo.GetCustomersPageWiseWithTown
@PageIndex INT = 1
,@PageSize INT = 10
,@PageCount INT OUTPUT
,@TownId int
AS
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
order by IsPaid desc
)AS RowNumber
,b.Id
,b.Name
,b.Phone1
,b.Town
,b.Addess
,b.IsPaid
,b.DefaultImage
,t.TownName
INTO #Results
FROM BusinessFullData b
Left JOIN Towns t ON b.Town = t.Id
where ((b.IsVisable=1) and (b.Town=@TownId))
DECLARE @RecordCount INT
SELECT @RecordCount = COUNT(*) FROM #Results
SET @PageCount = CEILING(CAST(@RecordCount AS DECIMAL(10, 2)) / CAST(@PageSize AS DECIMAL(10, 2)))
PRINT @PageCount
SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
DROP TABLE #Results
RETURN
非常感谢您的建议,
【问题讨论】:
标签: sql sql-server stored-procedures database-administration