我想更改数据库中表Employees的架构名称。在当前表员工数据库架构名称为dbo,我想将其更改为exe。我该怎么做呢?
例子:
从
dbo.Employees
TO
exe.Employees
我试着问了这个问题:
ALTER SCHEMA exe TRANSFER dbo.Employees
但这给了我一个错误:
无法更改模式“exe”,因为它不存在或您不存在 有权限。
我错过了什么?
我想更改数据库中表Employees的架构名称。在当前表员工数据库架构名称为dbo,我想将其更改为exe。我该怎么做呢?
例子:
从
dbo.Employees
TO
exe.Employees
我试着问了这个问题:
ALTER SCHEMA exe TRANSFER dbo.Employees
但这给了我一个错误:
无法更改模式“exe”,因为它不存在或您不存在 有权限。
我错过了什么?
当前回答
SQL2019:
ALTER SCHEMA [SCEMAYOUWANTTOTRANSFERTO] TRANSFER [CURRENTSCHEMA].[TABLENAME];
例子:
ALTER SCHEMA [dbo] TRANSFER [Curated].[MyTable];
其他回答
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
创建架构:
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe'))
BEGIN
EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END
ALTER Schema:
ALTER SCHEMA exe
TRANSFER dbo.Employees
此外,您还可以将数据从默认模式'dbo'转移到您的模式 源自wizard by 1-双击db图 2-右键单击你的实体->选择属性 3-在标识右侧,更改模式名
确保在SSMS中处于正确的数据库上下文中。跟你一样的错误,但我知道模式已经存在了。没有意识到我是在“MASTER”上下文中。在我将上下文更改为数据库之后,ALTER工作正常。
SQL2019:
ALTER SCHEMA [SCEMAYOUWANTTOTRANSFERTO] TRANSFER [CURRENTSCHEMA].[TABLENAME];
例子:
ALTER SCHEMA [dbo] TRANSFER [Curated].[MyTable];