【发布时间】:2021-01-16 21:36:33
【问题描述】:
我正在尝试使用数据库项目创建具有系统版本控制的表。
-
以下架构给出错误:
SQL70633:系统版本的时态表必须明确提供历史表名。
CREATE TABLE [dbo].[Products] ( [Id] INT NOT NULL PRIMARY KEY, [Name] NVARCHAR(255) NOT NULL, [ModifiedBy] NVARCHAR(127) NULL ) WITH (SYSTEM_VERSIONING = ON) GO -
使用明确的名称:
SQL71501:表:[dbo].[Products] 对表 [history].[ProductsHistory] 的引用未解决。
SQL46010:] 附近的语法不正确。CREATE TABLE [dbo].[Products] ( [Id] INT NOT NULL PRIMARY KEY, [Name] NVARCHAR(255) NOT NULL, [ModifiedBy] NVARCHAR(127) NULL ) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [history].ProductsHistory)) GO
我已经尝试过最新版本的 Visual Studio 2019 (16.7.5) 和最新预览版 (16.8.0 Preview 3.2)。
【问题讨论】:
-
您是否在 SSMS 中尝试过这种语法?两个命令都不包含临时列或 PERIOD 子句。
-
好的,添加列更改了消息
SQL71501: Table: [history].[ProductsHistory] has an unresolved reference to Schema [history].。将 CREATE SCHEMA [history] 添加到单独的构建脚本可修复此错误。你想写答案吗? -
您也可以使用原始查询,使用匿名历史记录表,只要包含列即可
-
我直接在 SSDT 中创建了时态表,将它们导入到数据库项目中,然后毫无问题地部署到另一个数据库中
-
是的,我完全忘记了时间列。你看,我以前从未使用过系统版本控制,错误消息有点误导
标签: sql-server visual-studio-2019 sql-server-data-tools database-project