Sql-Server
計算欄位更新每一行
我在表中添加了一個計算欄位,並且只想更新
NULL
行(或“新”行)。出了點問題,DateTime
當插入 1 行時,我的表中的每一行都被更新為目前行。這是Create Table
語法,我必須做什麼才能只用目前行更新“新”行DateTime
CREATE TABLE [dbo].[SE]( [dbID] [int] IDENTITY(1,1) NOT NULL, [uqID] [varchar](31) NOT NULL, [POD] [varchar](255) NULL, [EC] [varchar](255) NULL, [S1] [varchar](35) NULL, [S2] [varchar](35) NULL, [S3] [varchar](35) NULL, [S4] [varchar](35) NULL, [S5] [varchar](35) NULL, [S6] [varchar](35) NULL, [S7] [varchar](35) NULL, [PSD] [varchar](50) NULL, [DS] [datetime] NULL, [CN] [varchar](max) NULL, [autodate] AS (getdate()), PRIMARY KEY CLUSTERED ( [dbID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO
您不需要計算列,而只需使用日期時間(不可為空)列,並使用 getdate() 進行預設約束。
表定義 SQL 中列的語法如下:
[autodate] DATETIME NOT NULL DEFAULT(GETDATE())
SQL Server 中的計算列是在查詢時計算的(除非它是 PERSISTED,否則它有一個值儲存在磁碟上並且可以被索引,但是它仍然是計算的)。它旨在是可變的,並且是在另一列或多列上計算的結果。
DEFAULT 約束只是將預設值插入到列中以進行任何插入,但隨後它像任何其他數據列一樣被保存為固定值。