给视图创建索引时,如果里面有datetime类型,在转换成字符串时,必须符合SQL Server的显式转换标准,否则会报错:该视图包含不精确或不具有确定性的转换。
Cannot create index on view "tms.dbo.v_batch_master_index". The view contains a convert that is imprecise or non-deterministic.
SELECT t.product_code,t.product_name,t.batch_no,stock_type,expiry_date = CONVERT(VARCHAR(10),t.expiry_date,23)
FROM dbo.t_im_batmas t
INNER JOIN dbo.product p ON t.product_code = p.product_code
CONVERT(VARCHAR(10),t.expiry_date,23)不符合要求,应该用这种写法
SELECT t.product_code,t.product_name,t.batch_no,stock_type,expiry_date = CONVERT(VARCHAR(10),t.expiry_date,120)
FROM dbo.t_im_batmas t
INNER JOIN dbo.product p ON t.product_code = p.product_code
SQL Convert规范
本文指导如何在SQL Server中为包含datetime类型的视图创建索引,重点讲解了使用CONVERT函数进行显式转换以避免错误,推荐使用VARCHAR(10)和23格式。
1358

被折叠的 条评论
为什么被折叠?



