卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

SQLServer計算列應(yīng)用指南

--- 創(chuàng)建計算列1)計算列是指在創(chuàng)建表時定義其值為某種計算公式,通常適用于不變的公式,例如單價乘以數(shù)量等。持久化的計算列會將計算結(jié)果存儲在物理列中,可以建立索引進(jìn)行查詢;而非持久化的計算列只是虛擬存

---

創(chuàng)建計算列

1)計算列是指在創(chuàng)建表時定義其值為某種計算公式,通常適用于不變的公式,例如單價乘以數(shù)量等。持久化的計算列會將計算結(jié)果存儲在物理列中,可以建立索引進(jìn)行查詢;而非持久化的計算列只是虛擬存在,每次取值時都會動態(tài)計算,無法添加索引。

2)在創(chuàng)建表時,可以同時創(chuàng)建計算列,并使用`persisted`標(biāo)記來指示列是否持久化。例如,在創(chuàng)建名為ComputeTable的表時,可以定義一個計算列Amount,其公式為Price * Number,SQL語句如下:

```sql

create table ComputeTable(

Id varchar(36) not null,

Price decimal(6,2) null,

Number int null,

Amount as (Price * Number) persisted

);

```

查看計算列持久化

1)通過上述SQL語句創(chuàng)建的計算列默認(rèn)是持久化的,可以通過在SQL Server Management Studio中右鍵點擊表ComputeTable并選擇“設(shè)計”,在彈出窗口中查看Amount行記錄下方的“計算列規(guī)范”顯示的計算公式以及持久化標(biāo)志。

插入測試數(shù)據(jù)(失敗的情況)

嘗試向ComputeTable表插入測試數(shù)據(jù)時,對于計算列Amount不能直接賦值,系統(tǒng)會提示“不能修改列,因為它是計算列,或者是UNION運算符的結(jié)果”。

插入測試數(shù)據(jù)(成功的情況)

對于具有計算列的表,插入記錄時無法為計算列賦值,該列會根據(jù)創(chuàng)建時的公式自動計算值。

查詢數(shù)據(jù)

通過使用select語句可以直接查詢表中所有數(shù)據(jù),但在實際場景中,最好避免全表查詢,特別是當(dāng)數(shù)據(jù)量龐大時。

計算列修改值

1)嘗試直接使用SQL語句修改計算列Amount的值會導(dǎo)致錯誤提示:“不能修改列Amount,因為它是計算列,或者是UNION運算符的結(jié)果”。

2)想要修改計算列的值只能通過修改與公式相關(guān)聯(lián)的其他列的數(shù)值,這樣計算列的值會自動更新。

通過以上方法,可以更好地理解和應(yīng)用SQLServer中的計算列功能,提高數(shù)據(jù)庫設(shè)計的靈活性和效率。

標(biāo)簽: