una - para que sirven los esquemas en sql server
Cambiar el nombre del esquema de la tabla en SQL (10)
A través de SSMS, creé un nuevo esquema por:
- Al hacer clic en la carpeta de Seguridad en el Explorador de objetos dentro de mi servidor,
- clic derecho Schemas
- Seleccionado "Nuevo esquema ..."
- Nombrado mi nuevo esquema (exe en tu caso)
- Presione Aceptar
Encontré esta publicación para cambiar el esquema, pero también recibí el mismo error de permisos al intentar cambiar al nuevo esquema. Tengo varias bases de datos enumeradas en mi SSMS, así que solo intenté especificar la base de datos y funcionó:
USE (yourservername)
ALTER SCHEMA exe TRANSFER dbo.Employees
Quiero cambiar el nombre del esquema de la tabla Employees
en la base de datos. En la tabla actual, el nombre del esquema de la base de datos de Employees
es dbo
. Quiero cambiarlo a exe
. Cómo puedo hacerlo ?
Ejemplo:
DE
dbo.Employees
A
exe.Employees
Intenté con esta consulta:
ALTER SCHEMA exe TRANSFER dbo.Employees
Pero esto me da un error:
No se puede modificar el esquema ''exe'' porque no existe o no tiene permiso.
¿Qué me perdí?
Asegúrese de estar en el contexto correcto de la base de datos 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 el contexto ''MASTER''. ALTER funcionó después de cambiar el contexto de mi base de datos.
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 verificarlo en SO ...
Pruebe debajo
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
Tenga mucho cuidado al cambiar el nombre de los objetos en sql. Puede causar que las dependencias fallen si no está completamente ausente con lo que está haciendo. Una vez 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''
Tu código es:
FROM
dbo.Employees
TO
exe.Employees
Intenté con esta consulta.
ALTER SCHEMA exe TRANSFER dbo.Employees
Simplemente escriba create schema exe
y ejecútelo
Para crear un nuevo esquema, siga los pasos a continuación:
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
Crear esquema:
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = ''exe''))
BEGIN
EXEC (''CREATE SCHEMA [exe] AUTHORIZATION [dbo]'')
END
ALTER esquema:
ALTER SCHEMA exe
TRANSFER dbo.Employees
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.
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
Para más detalles haga clic aquí