无法创建索引视图

use*_*423 1 sql-server view

CREATE TABLE orders
(
   order_no INT NOT NULL PRIMARY KEY,
   prod_id INT NOT NULL,
   quantity INT
);

CREATE VIEW product_stats WITH SCHEMABINDING 
AS
SELECT a.prod_id, a.product_name, 
   (SELECT COUNT(*) FROM dbo.orders WHERE prod_id = a.prod_id) AS total FROM dbo.products a;

CREATE UNIQUE CLUSTERED INDEX [IDX_Order_Details_X] 
       ON product_stats (prod_id, total)
Run Code Online (Sandbox Code Playgroud)

它抱怨:视图'product_stats'中的列'total'不能用在索引或统计信息中,也不能用作分区键,因为它可以访问用户或系统数据.

DB是ms sql.

Joe*_*lli 6

索引视图不能包含COUNT(*)子查询.见"查看限制"部分这篇文章.