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.
O que perdi?não pode alterar o esquema 'exe', porque ele não existe ou você não tem permissão.
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
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
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.
- 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
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
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
Para mais detalhes Clique aqui
Vê MSDN...
CREATE SCHEMA
: http://msdn.microsoft.com/en-us/library/ms189462.aspx
Depois
ALTER SCHEMA
: http://msdn.microsoft.com/en-us/library/ms173423.aspx
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'
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