計算列由可以使用同一表中的其他列的表達式計算得來。表達式可以是非計算列的列名、常量、函式,也可以是用一個或多個運算符連線的上述元素的任意組合。表達式不能為子查詢。
例如,在 AdventureWorks 示例資料庫中,Sales.SalesOrderHeader 表的 TotalDue 列具有以下定義:TotalDue AS subtotal + TaxAmt + Freight。
除非另行指定,否則計算列是未實際存儲在表中的虛擬列。每當在查詢中引用計算列時,都將重新計算它們的值。資料庫引擎在 CREATE TABLE 和 ALTER TABLE 語句中使用 PERSISTED 關鍵字來將計算列實際存儲在表中。如果在計算列的計算更改時涉及任何列,將更新計算列的值。通過將計算列標記為 PERSISTED,可以對具有確定性但不精確的計算列創建索引。另外,如果計算列引用 CLR 函式,則資料庫引擎不能驗證該函式是否真正具有確定性。在這種情況下,計算列必須為 PERSISTED,以便可對其創建索引。
計算列可用於選擇列表、WHERE 子句、ORDER BY 子句或任何可使用正則表達式的其他位置,但下列情況除外:
用作 CHECK、FOREIGN KEY 或 NOT NULL 約束的計算列必須標記為 PERSISTED。如果計算列的值由具有確定性的表達式定義,並且索引列中允許使用計算結果的數據類型,則可將該列用作索引中的鍵列,或者用作 PRIMARY KEY 或 UNIQUE 約束的一部分。
例如,如果表中含有整數列 a 和 b,則可以對計算列 a + b 創建索引,但不能對計算列 a + DatePart(dd, GETDATE()) 創建索引,因為在後續調用中,其值可能發生改變。
計算列不能作為 INSERT 或 UPDATE 語句的目標。
資料庫引擎基於使用的表達式自動確定計算列的為 Null 性。即使只有非空列,大多數表達式的結果也“認為”可為空值,因為下溢或溢出生成的結果也可能為空。使用帶 AllowsNull 屬性的 COLUMNPROPERTY 函式可查明表中任何計算列的為 Null 性。通過指定 ISNULL (check_expression, constant) 可以將可為空值的表達式轉換為不可為空值的表達式,其中, constant 是可替換所有空結果的非空值.
相關詞條
-
恩格列淨片
恩格列淨片,本品適用於治療2型糖尿病。【單藥治療】本品配合飲食控制和運動,用於改善2型糖尿病患者的血糖控制。【與鹽酸二甲雙胍聯合使用】當單獨使用鹽酸二甲...
成份 性狀 適應症 規格 用法用量 -
維格列汀
維格列汀,是一種化學物質,具有選擇性、競爭性、可逆的DPP_4抑制劑。其化學名為1-[[(3一羥基一l一金剛烷基)氨基]乙醯基]-2-氰基一(S)-四氫吡咯烷¨。
簡介 藥理作用 藥動學 臨床研究 不良反應 -
雲計算實踐之道
《雲計算實踐之道》這本書從信息技術產業界的視角幫助您認識、分析和理解雲計算,以及它給各行各業所帶來的深刻變革和空前機遇。本書所介紹的雲計算相關技術、架構...
宣傳語 內容簡介 推薦語 作者序 前 言 -
西格列汀二甲雙胍片
西格列汀二甲雙胍片,用於2型糖尿病患者
藥品信息 研發歷程 指南推薦 臨床試驗 -
太極計算
太極計算就是將太極定義為其值為1的無差別的點、方格、球體或正立方體(點、方格、球體或正立方體在趨於無限小時視作無差別)後,引入計算機邏輯運算體系,以改善...
百科名片 太極計算的含義 太極計算與數學危機 太極計算機與量子計算機 太極計算的數學套用 -
恩格列淨
恩格列淨,化學名稱:(1S)-1,5-脫水 -1-C-[4-氯-3-[[4-[[(3S)-四氫 -3-呋喃基 ]氧基]苯基]甲基 ]苯基]-D-葡萄糖醇...
概況 -
計算化學
計算化學(computational chemistry)是理論化學的一個分支,主要目的是利用有效的數學近似以及電腦程式計算分子的性質,例如總能量、偶極...
簡介 第一原理方法 半經驗方法 分子力學方法 -
疊代計算
疊代法是數值計算中一類典型方法,套用於方程求根,方程組求解,矩陣求特徵值等方面。其基本思想是逐次逼近,先取一個粗糙的近似值,然後用同一個遞推公式,反覆校...
疊代特性 終止準則 疊代計算設定 疊代計算套用 測繪套用