3
我想要一個數據庫級塊,將一個id的3個以上的實例添加到映射表的列中。我不想使用觸發器或向表中添加任何非計算列。我嘗試了一個索引視圖,但是我不能在查詢中使用HAVING或CAST,因爲下面顯示了兩個無效的示例。有任何想法嗎?對行計數的SQL Server約束
CREATE VIEW VW WITH SCHEMABINDING AS
SELECT col1, CAST(COUNT_BIG(*)+252 AS TINYINT) a
FROM tbl1 GROUP BY col1
CREATE VIEW VW WITH SCHEMABINDING AS
SELECT col1, COUNT_BIG(*), CAST(256 AS TINYINT) a
FROM tbl1 GROUP BY col1 HAVING COUNT(*)>3
爲了幫助任何人,我創建了一個SQL小提琴來演示確切的錯誤:(http://sqlfiddle.com/#!6/7c4ce/2)。由於視圖的選擇列表包含集合函數或分組列的結果上的表達式,因此錯誤是沿着「無法在視圖'db_6_4c116.dbo.VW'上創建聚簇索引'IDX_V1'。集合函數或選擇列表中的分組列「。該文檔提到禁止COUNT:(http://msdn.microsoft.com/en-us/library/ms191432.aspx)/ –
什麼版本的SQL Server? – DMason