got*_*tqn 5 t-sql sql-server sql-server-2016 temporal-tables
创建时态表时,我们需要定义开始和结束日期时间列,这些列在或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.
Run Code Online (Sandbox Code Playgroud)
这是代码:
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;
Run Code Online (Sandbox Code Playgroud)
为什么我不允许在此类列上添加此属性?
为此,您需要像下面一样使用
[ GENERATED ALWAYS AS ROW { START | END } [ HIDDEN ] ]
Run Code Online (Sandbox Code Playgroud)
始终生成为行开始/结束是强制的。和
另请注意,系统版本控制表不能有多个“GENERATED ALWAYS AS ROW END”列
另请注意,系统版本控制表不能有多个“GENERATED ALWAYS AS ROW START”列
因此,如果您已经使用 2 个日期列,那么这是不可能的。我认为我们可以只使用具有默认值的普通列。
请参阅 Microsoft 的更多信息 - https://learn.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql
| 归档时间: |
|
| 查看次数: |
13404 次 |
| 最近记录: |