我使用的是SQL Server 2008 Express R2。 当我开始收到此错误时,我试图测试几个查询:
Msg 2760, Level 16, State 1, Line 2
The specified schema name "t_one" either does not exist or you do not have permission to use it.
SQL:
CREATE TABLE t_one.clients
(
t_id int NOT NULL PRIMARY KEY IDENTITY,
colOne varchar(255) NOT NULL,
colTwo varchar(255) NOT NULL,
colThree varchar(255) NOT NULL,
colFour varchar(255) NOT NULL,
CONSTRAINT pk_testID PRIMARY KEY(t_id)
)
我只是使用界面授予了我的用户个人资料的权限,在我点击确定/保存后它没有应用它们 - 当我回到用户的权限时,他们都被取消了。
答案 0 :(得分:19)
尝试以这种方式运行:
CREATE SCHEMA t_one
CREATE TABLE t_one.clients
(
t_id int NOT NULL PRIMARY KEY IDENTITY,
colOne varchar(255) NOT NULL,
colTwo varchar(255) NOT NULL,
colThree varchar(255) NOT NULL,
colFour varchar(255) NOT NULL,
CONSTRAINT pk_testID PRIMARY KEY(t_id)
)
答案 1 :(得分:1)
要检查并创建架构是否不存在,您可以让以下在单独的批处理中运行
IF NOT EXISTS ( SELECT *
FROM sys.schemas
WHERE name = N't_one' )
EXEC('CREATE SCHEMA [t_one] AUTHORIZATION [dbo]');
GO
答案 2 :(得分:0)
SELECT * FROM sys.schemas WHERE name = 't_one'
t_one
不存在,请尝试运行 CREATE SCHEMA t_one
USE <database_name>;
GRANT CREATE SCHEMA TO <user_name>;
GO
然后创建模式并运行用于创建表的代码。
如果您拥有架构并且您无权使用它,
USE <database_name>;
GRANT CREATE TABLE TO <user_name>;
GO
然后运行代码来创建表。