Partition tables based on month and year in SQL Server
Firstly, it must be said that using SQL's native table partitioning support is preferred.  But that requires SQL Enterprise, which is a lot of money, so, presumably, here we are.

A few things for you to check:


Partition column must be part of primary key 
Partition column must have one and only one CHECK constraint 
Partitions must not overlap.  Perhaps you have a typo, or my eyes fail me, but your constraints on sales_1 and sales_2 overlap.
Make sure the constraints are checked (WITH CHECK CHECK CONSTRAINT).  Given your definition in the question, it probably isn't the issue, but it is in general a necessary troubleshooting step (take a look at SELECT name, is_not_trusted FROM sys.check_constraints)


EDIT

Apparently DATEPART doesn't work.  Probably you should just specify the dates directly (s_date &gt;= '2014-01-01' AND s_date &lt; '2014-06-01'), etc.  You could also use persisted custom columns.

See: https://stackoverflow.com/questions/11155758/partitioned-view-not-working

Some other things to note about partitioned views, most of which I ran into quickly:


IDENTITY columns will prevent inserts.  What I did to get around this was create a "staging" table with the same structure (and an identity column), and add a trigger that just inserts into the partitioned view and deletes from the staging table.  At some point I will look into using SQL 2012's SEQUENCEs
You can't run an update/delete query on the PV if it has a self-join on the PV or any of its tables
All columns have to be specified in an INSERT statement.  DEFAULT doesn't work or help.  You can't omit nullable columns or columns with a default value.
If you use replication, it tends to disable the constraints (NOT FOR REPLICATION), so you'll have to make sure that doesn't happen 


You can see here at the bottom: http://technet.microsoft.com/en-us/library/aa933141(v=sql.80).aspx