【发布时间】:2017-07-17 12:19:04
【问题描述】:
我有一个临时表 Employee,其中 EmployeeHistory 作为其历史表。
在 C# 中,我使用 SqlConnection 从 SQL Server 查询数据以获取员工的整个历史记录。
var data = Conn.ExecuteReader("select * from Employee e FOR SYSTEM_TIME ALL WHERE e.Id=15");
这会引发错误:
FOR 附近的语法不正确
那么,我们如何在 C# 中使用 SqlConnection 查询时态表的历史数据?
【问题讨论】:
-
您能否更新您的帖子并使用发生异常的屏幕截图?另外,请附上
Conn变量的声明和实例化的源代码。 -
你可以使用 SQL Server 执行这样的命令吗?
-
你连接的是什么版本的 SQL Server?
-
我意识到,当为 Employee 表指定别名时,此查询在 SQL Server 中也不起作用,但在没有别名的情况下也能正常工作,这很奇怪。即“select * from Employee FOR SYSTEM_TIME ALL WHERE Id=15 有效。
-
不要认为你可以使用表别名。将其更改为
select * from Employee FOR SYSTEM_TIME ALL WHERE Id=15
标签: c# sql-server sqlconnection temporal temporal-tables