Sql-Server

沒有在自定義數據庫中創建表的權限

  • May 8, 2020

我正在使用本地安裝的 SQL Server 速成版。CURRENT_USER = dbo,並且我使用了win認證。數據庫以這種方式成功創建:

CREATE DATABASE [online_banking]
ON  PRIMARY 
( NAME = N'online_banking', FILENAME = N'C:\...\online_banking.mdf' , 
 SIZE = 512000KB , MAXSIZE = UNLIMITED, FILEGROWTH = 30%)
LOG ON 
( NAME = N'online_banking_log', FILENAME = N'C:\...\online_banking_log.ldf' , 
 SIZE = 1024KB , MAXSIZE = 20GB , FILEGROWTH = 10%)
GO

但是創建表會導致錯誤,我沒有權限。

CREATE TABLE [online_banking].Customers 
    (
     customer_id INTEGER NOT NULL,
     customer_name VARCHAR(100) NOT NULL,
     CONSTRAINT PK_cust_id
              PRIMARY KEY CLUSTERED (customer_id)
              WITH (IGNORE_DUP_KEY = OFF)
     )
;

這裡有什麼問題?

PS表可以這樣創建: CREATE TABLE Customers ...

看起來您正試圖在名為online_banking. 在某些平台上,架構和數據庫是同義詞,但在 SQL Server 中,架構是數據庫中的容器。

實例 > 數據庫 > 架構 > 對象

為了在online_banking數據庫中創建表,您需要使用由三部分組成的名稱或位於該數據庫的上下文中。而且您應該始終使用模式前綴

USE online_banking;
GO
CREATE TABLE dbo.test1(i INT);
GO

要麼:

CREATE TABLE online_banking.dbo.test1(i INT);

引用自:https://dba.stackexchange.com/questions/122973