Mudar o nome do esquema da tabela em SQL

quero mudar o nome do esquema da tabela Employees na Base de dados. Na tabela actual Employees o nome do esquema da base de dados é dbo quero mudá-lo para exe. Como posso fazê-lo ?

Exemplo:

de

dbo.Employees

a

exe.Employees

tentei com esta pergunta:

ALTER SCHEMA exe TRANSFER dbo.Employees
Mas isto dá-me um erro.

não pode alterar o esquema 'exe', porque ele não existe ou você não tem permissão.

O que perdi?

Author: AHiggins, 2013-03-18

10 answers

Criar Um Esquema :

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

Alterar o esquema :

ALTER SCHEMA exe 
    TRANSFER dbo.Employees
 195
Author: Pandian, 2015-06-10 19:02:45

Tente abaixo

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
 21
Author: DevelopmentIsMyPassion, 2013-03-18 17:20:13
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]

Tenho sempre de usar os parêntesis quando uso a consulta ALTER SCHEMA em SQL, ou recebo uma mensagem de erro.

 14
Author: Lauren, 2015-09-25 20:25:16
Através do SSMS, criei um novo esquema por:
  • Se carregar na pasta de segurança no Explorador de objectos dentro do meu servidor,
  • esquema clicado à direita
  • Selected " New Schema..."
  • nomeei o meu novo esquema (exe no teu caso)
  • bate OK

Eu encontrei este post para mudar o esquema, mas também estava recebendo o mesmo erro de permissões ao tentar mudar para o novo esquema. Eu tenho várias bases de dados listadas no meu SSMS, então eu apenas tentei especificar o base de dados e funcionou:

USE (yourservername)  
ALTER SCHEMA exe TRANSFER dbo.Employees 
 4
Author: Jason D., 2014-10-15 22:47:05

O seu código é:

FROM
 dbo.Employees
TO
 exe.Employees
Tentei com esta pergunta.
ALTER SCHEMA exe TRANSFER dbo.Employees

Basta escrever create schema exe e executá-lo

 3
Author: user2599599, 2014-10-08 11:51:14
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO

ALTER SCHEMA exe
TRANSFER dbo.Employees
GO

Para mais detalhes Clique aqui

 3
Author: Singh, 2015-12-02 05:59:19
 2
Author: Chains, 2017-05-23 11:47:31

Tenha muito cuidado ao mudar o nome dos objectos em sql. Você pode fazer com que dependências falham se você não estiver completamente fora com o que você está fazendo. Dito isto, isto funciona facilmente (demasiado) para mudar o nome das coisas desde que tenha acesso adequado ao ambiente:

exec sp_rename 'Nameofobject', 'ReNameofobject'
 0
Author: djangojazz, 2013-03-18 17:17:31
Certifica-te que estás no contexto certo da base de dados no SSMS. Tive o mesmo erro que tu, mas eu sabia que o esquema já existia. Não sabia que estava no contexto do "mestre". O ALTER funcionou depois de mudar o contexto para a minha base de dados.
 0
Author: billmack30, 2015-12-03 18:55:38

para criar um novo esquema, siga os passos abaixo:

1. Open your Database. 2. Route to Security folder. 3. Inside it is a folder named Schema. 4. Right click the schema folder> New Schema. 5. Add a Schema > Click OK.

para alterar um esquema, execute o seguinte comando sql:

ALTER SCHEMA new_schema TRANSFER dbo.Employees

 0
Author: Tahir77667, 2018-05-11 10:08:54