共用方式為


在資料來源檢視中定義具名計算 (Analysis Services)

具名計算是以計算結果列表示的 SQL 運算式。 此表達式會顯示並做為數據表中的數據列。 具名計算可讓您擴充數據源檢視中現有數據表或檢視的關係架構,而不需要修改基礎數據源中的數據表或檢視表。 請考慮下列範例:

  • 建立衍生自事實數據表中多個數據行的單一具名計算(例如,藉由將稅率乘以銷售價格來建立稅額)。

  • 建構維度成員的使用者友善名稱。

  • 作為查詢效能提升的策略,請在 DSV 中建立具名計算,而不是在 Cube 中建立計算成員。 具名計算會在處理期間計算,而導出成員則是在查詢時計算。

建立具名計算

備註

您無法將具名計算新增至具名查詢,也無法將具名查詢基底放在包含具名計算的數據表上。

當您建立具名計算時,您可以指定名稱、SQL 運算式,以及選擇性地指定計算的描述。 SQL 運算式可以參考數據源檢視中的其他數據表。 定義具名計算之後,具名計算中的表達式會傳送至數據源的提供者,並驗證為下列 SQL 語句,其中包含 <Expression> 定義具名計算的運算式。

SELECT 
   <Table Name in Data Source>.*, 
   <Expression> AS <Column Name> 
FROM 
   <Table Name in Data Source> AS <Table Name in Data Source View>

數據行的數據類型取決於表達式所傳回之純量值的數據類型。 如果提供者在表達式中找不到任何錯誤,數據行就會加入數據表中。

表達式中參考的欄位不應限定,或者僅應以資料表名稱來限定。 例如,若要參照數據表中的SaleAmount資料行, SaleAmountSales.SaleAmount 有效,但 dbo.Sales.SaleAmount 會產生錯誤。

表達式不會自動括在括弧之間。 因此,如果表達式,例如 SELECT 語句,需要括弧,您必須在 [ 表達式 ] 方塊中輸入括弧。 例如,只有在您輸入括弧時,下列表達式才有效。

(SELECT Description FROM Categories WHERE Categories.CategoryID = CategoryID)

新增或編輯具名計算

  1. 在 SQL Server Data Tools (SSDT) 中,開啟專案或連接到包含您要在其中定義具名計算之數據源檢視的資料庫。

  2. 在 [方案總管] 中,展開 [ 數據源檢視 ] 資料夾,然後按兩下數據源檢視。

  3. 以滑鼠右鍵按下您想要在 [ 資料表 ] 或 [ 圖表 ] 窗格中定義具名計算的數據表,然後按兩下 [ 新增具名計算]。 請務必以滑鼠右鍵按下數據表名稱,而不是在屬性上按下滑鼠右鍵。 功能表看起來應該如下所示:

    圖表工作區的螢幕快照,右鍵選單

    備註

    若要尋找資料表或檢視,您可以單擊 [數據源檢視] 功能表單,或在 [數據表] 或 [圖表] 窗格的開啟區域中單擊滑鼠右鍵,來使用 [尋找數據表] 選項。

  4. 在 [ 建立具名計算] 對話框中,執行下列動作:

    • 在 [ 資料行名稱] 文字框中,輸入新數據行的名稱。

    • 在 [ 描述 ] 文本框中,輸入新數據行的描述。

    • 在 [ 表達式 ] 文本框中,輸入表達式,以產生適用於數據提供者之 SQL 方言中新數據行的內容。

  5. 按一下 [確定]

    具名計算數據行會顯示為數據源檢視表中的最後一個數據行。 計算機符號表示數據行包含具名計算。

刪除具名計算項目

當您嘗試刪除具名計算時,系統會向您顯示專案或資料庫中因刪除而失效的物件清單。 在刪除計算之前,請先仔細檢閱清單。

另請參閱

在資料來源檢視中定義具名查詢 (Analysis Services)