【发布时间】:2017-06-02 20:34:44
【问题描述】:
我有一个带有时态表的 SQL Server 2016 数据库。一张临时表称为公司。我正在尝试查询它以获取当前记录和所有历史记录。我首先尝试了以下查询:
select *
from Company c
FOR SYSTEM_TIME all
并得到以下错误: “FOR”附近的语法不正确。
但是,如果我在没有别名的情况下尝试它,它可以正常工作:
select *
from Company
FOR SYSTEM_TIME all
我找不到任何关于此的文档 - 这是一个合法的限制、已知问题还是其他什么?
【问题讨论】:
-
你用 AS 试过了吗?通常 SQL Server 暗示了这一点,它是可选的,但我想知道它是否必须在这里明确。
-
用AS试过了,结果一样。
-
似乎是一个限制 - 但你可以使用 CTE:..... WITH _data AS { SELECT * FROM Company FOR SYSTEM_TIME all } SELECT * FROM _data AS d 。 - 见这里stackoverflow.com/a/45144816/495157
标签: sql-server sql-server-2016 temporal-database