我创建了一个存储过程GetNotifications
,它返回特定用户的所有通知。其他开发人员正在许多不同的地方使用此SP。
现在我们需要实现一个分页功能,这样我们就不会同时向用户充斥所有通知。
我无法修改现有的SP,因为它正在被使用。
我可以在其中创建另一个具有分页功能的SP,但我真的不想这样做,因为它需要大量重复的代码,当然如果我们改变业务逻辑以便将来收到通知,那就太糟糕了。 / p>
我可以这样做:创建一个内部调用GetNotifications
的新SP,然后在返回的结果集上实现分页。但是,由于GetNotifications
无论如何都会返回所有结果,因此不会在服务器上进行不必要的加载吗?
您能想出更好的方法来解决这个问题吗?
答案 0 :(得分:8)
使用可选参数修改存储过程以返回分页功能或所有结果(默认值)。这应该为您提供所需的功能,而不会破坏现有代码。
答案 1 :(得分:3)
有一个存储过程接受2个参数:@ PageNumber,@ RowPerPage
如果两个参数都传入0,则返回所有行,否则进行分页。
更新您现有的代码以传入0/0的args,然后您的新代码可以传递实际值,如果/当它想要分页。
正如评论中所建议的那样,如果为参数指定默认值0/0,则甚至不需要更新现有代码。