2017-04-26 82 views
1

我有如下表:CONVERT是非確定性的嗎?

CREATE TABLE Portfolio.DailyStats 
(
Date date NOT NULL PRIMARY KEY, 
NAV int NOT NULL, 
SP500 decimal(8,4) NULL, 
R2K decimal(8,4) NULL, 
NetExp decimal(8,4) NULL, 
GrossExp decimal(8,4) NULL, 
[YrMn] AS (CONVERT([varchar](7),[Date])), 
) 
GO 

我在想,我可能需要在某一時刻在此建索引視圖,所以我想確保我的計算列[YrMn]是確定性的。我跑了這個檢查:

Select COLUMNPROPERTY (OBJECT_ID('Portfolio.DailyStats'),'YrMn', 'IsDeterministic') 

這返回值0表示該列是非確定性的。我正在努力弄清楚爲什麼在特定日期列值始終相同的情況下會出現這種情況。它是否與轉換功能有關,它是什麼?

+1

你需要給它一個風格參數,使其確定性。 –

+1

您需要爲轉換添加一個'style'以確定性:'CONVERT(varchar(7),[date],103)'例如 – Lamak

+2

輕微彎曲...不確定日期數據類型是否爲好的主鍵。說實話,YrMn專欄可以通過格式化現有數據在前端輕鬆完成。 –

回答