更改架构名称表在SQL(Change Schema Name Of Table In SQL)

2019-07-21 21:44发布

我想改变表的模式名Employees在数据库中。 在当前的表Employees数据库架构名称是dbo我想将它更改为exe 。 我该怎么做 ?

例:

dbo.Employees

exe.Employees

我试图与此查询:

ALTER SCHEMA exe TRANSFER dbo.Employees

但是,这给了我一个错误:

不能改变模式“EXE”,因为它不存在,或者您没有权限。

我错过了什么?

Answer 1:

创建模式:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe')) 
BEGIN
    EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END

旧方案:

ALTER SCHEMA exe 
    TRANSFER dbo.Employees


Answer 2:

下面尝试

declare @sql varchar(8000), @table varchar(1000), @oldschema varchar(1000), @newschema   varchar(1000)

  set @oldschema = 'dbo'
  set @newschema = 'exe'

 while exists(select * from sys.tables where schema_name(schema_id) = @oldschema)

  begin
      select @table = name from sys.tables 
      where object_id in(select min(object_id) from sys.tables where  schema_name(schema_id)  = @oldschema)

    set @sql = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @table

   exec(@sql)
 end


Answer 3:

ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]

我一直有当我使用使用括号ALTER SCHEMA查询在SQL,否则我得到一个错误信息。



Answer 4:

通过SSMS,我创建了一个新的模式是:

  • 点击我的服务器内的对象资源管理器的安全文件夹,
  • 右点击架构
  • 选择“新模式......”
  • 命名我的新模式(在你的情况EXE)
  • 点击确定

我发现这个职位改模式,但试图改变成新的模式时,也得到同样的权限错误。 我有几个数据库,我SSMS上市,所以我只是想指定数据库和它的工作:

USE (yourservername)  
ALTER SCHEMA exe TRANSFER dbo.Employees 


Answer 5:

你的代码是:

FROM
 dbo.Employees
TO
 exe.Employees

我试着用此查询。

ALTER SCHEMA exe TRANSFER dbo.Employees

只要写create schema exe并执行它



Answer 6:

CREATE SCHEMA exe AUTHORIZATION [dbo]
GO

ALTER SCHEMA exe
TRANSFER dbo.Employees
GO


Answer 7:

看看MSDN ...

CREATE SCHEMA : http://msdn.microsoft.com/en-us/library/ms189462.aspx

然后

ALTER SCHEMA : http://msdn.microsoft.com/en-us/library/ms173423.aspx

或者你可以检查它的SO ...

如何移动表到T-SQL架构



Answer 8:

是SQL非常非常小心,重命名对象。 你可以因为如果你不与你在做什么完全离开依赖性失败。 如此说来这工作轻松(太多的话)重命名事物只要你有对环境访问适当的:

exec sp_rename 'Nameofobject', 'ReNameofobject'


Answer 9:

请确保您在SSMS正确的数据库上下文是。 得到了同样的错误,你,但我知道的架构已经存在。 不知道我是“主人”上下文。 ALTER工作后,我改变了背景到我的数据库。



Answer 10:

在情况下,有人找低版本 -

对于SQL Server 2000:

sp_changeobjectowner @objname = 'dbo.Employess',@newowner = 'exe文件'



文章来源: Change Schema Name Of Table In SQL