我想更改数据库中表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”,因为它不存在或您不存在 有权限。
我错过了什么?
当前回答
创建架构:
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
其他回答
SQL2019:
ALTER SCHEMA [SCEMAYOUWANTTOTRANSFERTO] TRANSFER [CURRENTSCHEMA].[TABLENAME];
例子:
ALTER SCHEMA [dbo] TRANSFER [Curated].[MyTable];
创建架构:
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
以防有人在寻找低版本-
SQL Server 2000:
sp_changeobjectowner @objname = 'dbo。Employess' , @newowner ='exe'
在sql中重命名对象要非常非常小心。如果你没有完全专注于你正在做的事情,你可能会导致依赖失败。已经说过,这很容易(太多)重命名的东西,只要你有适当的环境访问:
exec sp_rename 'Nameofobject', 'ReNameofobject'
看看MSDN…
创建SCHEMA: http://msdn.microsoft.com/en-us/library/ms189462.aspx
Then
ALTER SCHEMA: http://msdn.microsoft.com/en-us/library/ms173423.aspx
或者你可以在SO…
我如何移动一个表到一个模式在T-SQL