光腳丫學LINQ 044 資料庫中的計算所得列

2021-08-25 15:23:46 字數 958 閱讀 9752

演示重點

資料庫中的計算所得列實質上指的是列的數值是由表示式的計算結果提供的。

比如,下面的sql語句,建立了乙個包含totalvalue的計算所得列的資料表,

在列名的後面使用as關鍵字,後面接著寫上所使用到的表示式,就可以了。

create table [dbo].[products]( [productid] [int] identity(1,1) not null, [productname] [nvarchar](40) not null, [unitprice] [money] null, [unitsinstock] [smallint] null, [totalvalue] as ([unitprice]*[unitsinstock])

根據上面的表示式可以知道totalvalue列的數值,

是由unitprice和unitsinstock這兩個列確定的,即這兩列數值的乘積。

insert

當使用insert命令向包含計算所得列的資料表新增新紀錄的時候,

不要試圖為新紀錄的計算所得列提供數值,

那樣做的話,這個新增紀錄的sql語句會發生錯誤,新增失敗!

原因很簡單,計算所得列的值是由資料庫根據表示式自行計算的。

你偏偏給它賦值,豈不是讓資料庫覺得很不爽?於是乎,錯誤你一把又怎樣?

你可能會想,如果我也按照表示式來計算的話,

這樣數值不就正確了嗎?應該會被正確執行的吧?

結論是,不可以!資料庫會咆哮著對你說:你越權了!^_^

update

當我們執行更新sql命令的時候,凡是表示式中涉及到的資料列的數值被更新了,

那麼,資料庫也會自動更新計算所得列中的數值。

同樣的,在更新sql命令中,也不要試圖為計算所得列賦值。

那樣做,同樣是錯誤的!

光腳丫思考 2011-1-7

光腳丫學LINQ 002 篩選資料

也許最常用的查詢操作是應用布林表示式形式的篩選器。此篩選器使查詢只返回那些表示式結果為 true 的元素。使用 where 子句生成結果。實際上,篩選器指定從源序列中排除哪些元素。在下面的示例中,只返回那些位址位於倫敦的 customers。northwinddatacontext db new n...

光腳丫學LINQ 004 分組資料

使用 group 子句,您可以按指定的鍵分組結果。例如,您可以指定結果應按 city 分組,以便位於倫敦或巴黎的所有客戶位於各自組中。在本例中,customer.city是鍵。在使用 group 子句結束查詢時,結果採用列表的列表形式。列表中的每個元素是乙個具有 key 成員及根據該鍵分組的元素列表...

光腳丫學LINQ 004 分組資料

使用 group 子句,您可以按指定的鍵分組結果。例如,您可以指定結果應按 city 分組,以便位於倫敦或巴黎的所有客戶位於各自組中。在本例中,customer.city是鍵。northwinddatacontext db new northwinddatacontext var allcustom...