成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

---

創(chuàng)建計算列

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