2

我正在尝试在我的 SQL Server 数据库中创建一个临时表。是否有人熟悉 SQL Server 中的此错误:

消息 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])); 
4

2 回答 2

4

从 Yogesh 的回答中,您可以找到架构是否存在。

如果架构items不存在,请尝试运行

CREATE SCHEMA items

如果您没有创建 Schema 的权限,

USE <database_name>;  
    GRANT CREATE SCHEMA TO <user_name>;  
GO 

然后创建模式并运行用于创建表的代码。

如果您拥有架构但您无权使用它,

USE <database_name>;  
    GRANT CREATE TABLE TO <user_name>;  
GO 

然后运行代码来创建表。

在此处阅读文档

于 2017-08-31T13:08:47.903 回答
1

在查询下方运行以检查您是否尝试在数据库中运行查询是否有项目架构

SELECT * FROM sys.schemas WHERE name = 'item'

如果您在上述查询中有行,请检查您尝试运行此查询的登录用户。还要检查此用户是否有权通过这种方式创建表,您将知道为什么会出现此错误

于 2017-08-31T10:17:34.067 回答