簡體   English   中英

如何使用SQL Server 2008 R2創建帶有一個列的表,該表將自動計算另一列的總和?

[英]How to create a table with a column that will automatically compute the sum of the other column using SQL Server 2008 R2?

我想創建一個表,該表將自動計算另外四個列的值,該表稱為totalAmount。

我的SQL腳本無法正常工作。 請指導我。 謝謝。

這是我的sql,

CREATE TABLE dbo.phicTF(
guid            UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() PRIMARY KEY,
phno            NVARCHAR(14)        NOT NULL,
memLname        NVARCHAR(MAX)       NOT NULL,
memFname        NVARCHAR(MAX)       NOT NULL,
memMname        NVARCHAR(MAX)       NOT NULL,
pLname          NVARCHAR(MAX)       NOT NULL,
pFname          NVARCHAR(MAX)       NOT NULL,
pMname          NVARCHAR(MAX)       NOT NULL,
preltomem       NVARCHAR(MAX)       NOT NULL,
membership      NVARCHAR(MAX)       NOT NULL,
pAge            NVARCHAR(MAX)       NOT NULL,
pSex            NVARCHAR(MAX)       NOT NULL,
conDateFrom     DATE                NOT NULL,
conDateTo       DATE                NOT NULL,
icdCode         NVARCHAR(MAX)       NOT NULL,
fcRateFac       NVARCHAR(MAX)       NOT NULL,
fcRatePF        NVARCHAR(MAX)       NOT NULL,
scRateFac       NVARCHAR(MAX)       NULL,
scRatePF        NVARCHAR(MAX)       NULL,
totalAmount  AS SUM(fcRateFac+fcRatePF+scRateFac+scRatePF)

) 走

CREATE TABLE dbo.phicTF(
guid            UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() PRIMARY KEY,
phno            NVARCHAR(14)        NOT NULL,
memLname        NVARCHAR(MAX)       NOT NULL,
memFname        NVARCHAR(MAX)       NOT NULL,
memMname        NVARCHAR(MAX)       NOT NULL,
pLname          NVARCHAR(MAX)       NOT NULL,
pFname          NVARCHAR(MAX)       NOT NULL,
pMname          NVARCHAR(MAX)       NOT NULL,
preltomem       NVARCHAR(MAX)       NOT NULL,
membership      NVARCHAR(MAX)       NOT NULL,
pAge            NVARCHAR(MAX)       NOT NULL,
pSex            NVARCHAR(MAX)       NOT NULL,
conDateFrom     DATE                NOT NULL,
conDateTo       DATE                NOT NULL,
icdCode         NVARCHAR(MAX)       NOT NULL,
fcRateFac       NVARCHAR(MAX)       NOT NULL,
fcRatePF        NVARCHAR(MAX)       NOT NULL,
scRateFac       NVARCHAR(MAX)       NULL,
scRatePF        NVARCHAR(MAX)       NULL,
totalAmount  AS cast(fcRateFac as int)+cast(fcRatePF as int)+cast(scRateFac as int)+cast(scRatePF as int)

)

用這個

total列定義為NVARCHAR(MAX)並在INSERTUPDATE上添加觸發器。

在觸發器中,獲取4列的值對其求和,然后分配給total列。

將值插入表中時,將TotalAmount聲明為小數(15,2),以計算totalamount列。

創建表t(col1 int,col2,int,....總計十進制(15,2)

插入t(col1,col2,col3,totalamount)值(val1,val2,val3,val1 + val2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM