Instead of creating views, why not make an inline table-valued function - effectively a parameterized view. You basically get all the benefits of views AND parameters. Another thing you can do in your TVF is something like this: SELECT yourtable.* FROM yourtable INNER JOIN ranges ON yourtable.date BETWEEN ranges.start AND ranges.end WHERE ranges.name = @range_name Now your ranges have names (in a table where they can be easily managed without changing the schema). Also, consider avoiding BETWEEN: http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx