我正在尝试在我的SQL Server数据库中创建一个时间表。是否有人熟悉SQL Server中的此错误:
msg 2760,16级,状态1,第5行 指定的架构名称"项目"不存在,或者您没有使用它的权限。
我认为我的用户特权可能有问题。任何帮助都会很棒。
这是代码:
CREATE TABLE [items].[items_Temporal](
[itemsID] [int] NOT NULL,
[item_Name] [varchar](50) NOT NULL,
[item_Number] [int] NOT NULL,
[item_Price] [float] NOT NULL,
ValidFrom datetime2(7) GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo datetime2(7) GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
CONSTRAINT [PK_items_Temporal_items1ID] PRIMARY KEY CLUSTERED
(
[itemsID] ASC
),
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH(SYSTEM_VERSIONING = ON (HISTORY_TABLE = [items].[items_Temporal_History]));
从Yogesh的答案中,您可以找到模式是否存在。
如果架构items
不存在,请尝试运行
CREATE SCHEMA items
如果您没有权限创建模式,
USE <database_name>;
GRANT CREATE SCHEMA TO <user_name>;
GO
然后创建模式并运行用于创建表的代码。
如果您有架构,并且您没有使用它的权限,
USE <database_name>;
GRANT CREATE TABLE TO <user_name>;
GO
然后运行代码创建表。
在此处阅读文档
在查询以下运行以检查您实际上正在尝试在数据库中运行查询是否有项目模式
SELECT * FROM sys.schemas WHERE name = 'item'
如果您在上述查询中有行,请检查您尝试从中运行此查询的登录用户。还要检查此用户是否有权通过这种方式创建表