Cambiar El Nombre Del Esquema De La Tabla En SQL
Quiero cambiar el nombre del esquema de la tabla Employees
en la base de datos. En la tabla actual Employees
el nombre del esquema de la base de datos es dbo
Quiero cambiarlo a exe
. ¿Cómo puedo hacerlo ?
Ejemplo:
DE
dbo.Employees
A
exe.Employees
He intentado con esta consulta:
ALTER SCHEMA exe TRANSFER dbo.Employees
Pero esto me da un error:
No se puede alterar el esquema 'exe', porque no existe o no existe tenga permiso.
¿Qué me perdí?
10 answers
Crear Esquema :
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 19:02:45
Intente abajo
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-18 17:20:13
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
Siempre tengo que usar los corchetes cuando uso la consulta ALTER SCHEMA
en SQL, o recibo un mensaje de error.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-25 20:25:16
A través de SSMS, he creado un nuevo esquema de:
- Al hacer clic en la carpeta de seguridad en el Explorador de objetos dentro de mi servidor,
- esquemas pulsados con el botón derecho
- Seleccionado "Nuevo esquema..."
- Nombrado mi nuevo esquema (exe en su caso)
- Hit OK
He encontrado este post para cambiar el esquema, pero también estaba recibiendo el mismo error de permisos al intentar cambiar al nuevo esquema. Tengo varias bases de datos listadas en mis SSMS, así que solo intenté especificar la base de datos y funcionó:
USE (yourservername)
ALTER SCHEMA exe TRANSFER dbo.Employees
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-15 22:47:05
Su código es:
FROM
dbo.Employees
TO
exe.Employees
He intentado con esta consulta.
ALTER SCHEMA exe TRANSFER dbo.Employees
Simplemente escribe create schema exe
y ejecútalo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-08 11:51:14
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
Para más detalles haga clic aquí
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-02 05:59:19
Echa un vistazo a MSDN...
CREATE SCHEMA
: http://msdn.microsoft.com/en-us/library/ms189462.aspx
Entonces
ALTER SCHEMA
: http://msdn.microsoft.com/en-us/library/ms173423.aspx
O puede comprobarlo en TAN...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:31
Tenga mucho cuidado al renombrar objetos en sql. Puede hacer que las dependencias fallen si no está completamente ausente con lo que está haciendo. Dicho esto, esto funciona fácilmente (demasiado) para cambiar el nombre de las cosas siempre que tenga acceso adecuado al entorno:
exec sp_rename 'Nameofobject', 'ReNameofobject'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-18 17:17:31
Asegúrese de que está en el contexto de base de datos correcto en SSMS. Tengo el mismo error que tú, pero sabía que el esquema ya existía. No me di cuenta de que estaba en un contexto 'MAESTRO'. ALTER funcionó después de cambiar el contexto de mi base de datos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-03 18:55:38
Para crear un Nuevo Esquema, siga los siguientes pasos:
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 modificar un esquema, ejecute el siguiente comando sql:
ALTER SCHEMA new_schema
TRANSFER dbo.Employees
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-11 10:08:54