答案 0 :(得分:0)
问题很可能是您的CHECK
约束与WHERE
条件不匹配。
您的检查约束采用以下形式:
(datepart(year,[StockDate])=(2016))
您的WHERE
条件采用以下形式:
StockDate = '20160101'
更改您的Check Constraints以使用完整日期(此外,无需使用函数 - DATEPART
- 用于这样一个简单的过滤器)。以下是2016年表:
[StockDate] >= '01/01/2016' AND [StockDate] <= '12/31/2016'
对其他表重复此操作,更改两个谓词中的年份以匹配表的年份。
请注意,上面的语法没有说明时间组件,因为有问题的字段是DATE
数据类型。如果数据类型为DATETIME
,则范围的结尾需要表示为:
'12/31/2016 23:59.59.997'
有关分区视图的详细信息,请参阅Using Partitioned Views的MSDN页面。