【发布时间】:2018-08-16 12:00:20
【问题描述】:
创建时态表时,我们需要定义开始和结束日期时间列
可以是hidden - 在SELECT * 或INSERT without columns 中不可见。我想再添加一列,其中将包含有关提交更改的用户的信息。
问题是,我收到以下错误:
Msg 13735, Level 16, State 1, Line 10
Cannot alter HIDDEN attribute on column 'UserID' in table 'GK' because this column is not a generated always column.
代码如下:
DROP TABLE IF EXISTS GK;
CREATE TABLE GK
(
[ID] INT
,[UserID] BIGINT DEFAULT (CONVERT(BIGINT, SESSION_CONTEXT(N'user_id')))
)
ALTER TABLE GK
ALTER COLUMN [UserID] ADD HIDDEN;
为什么不允许我在此类列上添加此属性?
【问题讨论】:
-
如果他们提供开箱即用的临时表就更好了。
-
对于临时表,我们不能添加除 DateTime 之外的隐藏列类型,因为简单的解决方案是从此表创建视图并排除列 UserID 并使用此视图。
标签: sql-server tsql sql-server-2016 temporal-tables