sp_rename (Transact-SQL) (Español)
- 14/10/2020
- 6 minutos de lectura
-
- m
- c
- M
- m
- r
-
+5
Se aplica a: SQL Server (todas las versiones compatibles) Azure SQL Database Azure Synapse Analytics
Cambia el nombre de un objeto creado por el usuario en la base de datos actual . Este objeto puede ser una tabla, índice, columna, tipo de datos de alias o un tipo definido por el usuario de Microsoft .NET Framework Common Language Runtime (CLR).
Nota
En Azure Synapse Analytics, sp_rename está en versión preliminar y solo se puede usar para cambiar el nombre de una COLUMNA en un objeto de usuario.
Precaución
Cambiar cualquier parte de un objeto name puede romper scripts y procedimientos almacenados. Le recomendamos que no utilice esta declaración para cambiar el nombre de procedimientos almacenados, activadores, funciones definidas por el usuario o vistas; en su lugar, suelte el objeto y vuelva a crearlo con el nuevo nombre.
Convenciones de sintaxis de Transact-SQL
Sintaxis
Argumentos
«nombre_objeto»
Es el nombre calificado o no calificado actual del objeto de usuario o tipo de datos. Si el objeto que se va a renombrar es una columna de una tabla, object_name debe tener el formato table.column o schema.table.column. Si el objeto que se va a renombrar es un índice, object_name debe tener el formato table.index o schema.table.index. Si el objeto a renombrar es una restricción, object_name debe tener el formato schema.constraint.
Las comillas solo son necesarias si se especifica un objeto calificado. Si se proporciona un nombre completo, incluido el nombre de la base de datos, el nombre de la base de datos debe ser el nombre de la base de datos actual. object_name es nvarchar (776), sin valor predeterminado.
«new_name»
Es el nuevo nombre para el objeto especificado. new_name debe ser un nombre de una parte y debe seguir las reglas para identificadores. newname es sysname, sin valor predeterminado.
Nota
Los nombres de activadores no pueden comenzar con # o ##.
Valor | Descripción |
---|---|
COLUMN | Una columna a la que se le cambiará el nombre. |
BASE DE DATOS | Una base de datos definida por el usuario. Este tipo de objeto es necesario para cambiar el nombre de una base de datos. |
INDICE | Un índice definido por el usuario. Cambiar el nombre de un índice con estadísticas, también cambia automáticamente el nombre de las estadísticas. |
OBJECT | Un elemento de un tipo que se rastrea en sys.objects. Por ejemplo, OBJECT se puede utilizar para cambiar el nombre de objetos, incluidas las restricciones (CHECK, FOREIGN KEY, PRIMARY / UNIQUE KEY), tablas de usuario y reglas. |
STATISTICS | Se aplica a: SQL Server 2012 (11.x) y posterior y Azure SQL Database. Estadísticas creadas explícitamente por un usuario o creadas implícitamente con un índice. El cambio de nombre de las estadísticas de un índice también cambia automáticamente el nombre del índice. |
USERDATATYPE | A CLR Tipos definidos por el usuario agregados al ejecutar CREATE TYPE o sp_addtype. |
«COLUMN» Se aplica a: Azure Synapse Analytics
En sp_rename (vista previa ) para Azure Synapse Analytics, COLUMN es un parámetro obligatorio que especifica que el tipo de objeto que se va a renombrar es una columna. Es un varchar (13) sin valor predeterminado y siempre debe incluirse en la declaración sp_rename (vista previa). Solo se puede cambiar el nombre de una columna si no es una columna de distribución.
Valores de código de retorno
0 (éxito) o un número distinto de cero (error)
Comentarios
Se aplica a SQL Server (todas las versiones compatibles) y Azure SQL Database
sp_rename cambia automáticamente el nombre del índice asociado cada vez que se cambia el nombre de una restricción PRIMARY KEY o UNIQUE. Si un índice renombrado está vinculado a una restricción PRIMARY KEY, la restricción PRIMARY KEY también se renombra automáticamente por sp_rename.
Se aplica a SQL Server (todas las versiones compatibles) y Azure SQL Database
se puede usar sp_rename para cambiar el nombre de los índices XML primarios y secundarios.
Se aplica a SQL Server (todas las versiones compatibles) y Azure SQL Database.
Cambiar el nombre de un procedimiento almacenado, función, vista o desencadenador no cambiará el nombre del correspondiente objeto en la columna de definición de la vista de catálogo sys.sql_modules u obtenido usando la función incorporada OBJECT_DEFINITION. Por lo tanto, recomendamos que sp_rename no se utilice para cambiar el nombre de estos tipos de objetos. En su lugar, suelte y vuelva a crear el objeto con su nuevo nombre.
Se aplica a SQL Server (todas las versiones compatibles), Azure SQL Database y Azure Synapse Analytics
Cambiar el nombre de un objeto como una tabla o column no cambiará automáticamente el nombre de las referencias a ese objeto.Debe modificar cualquier objeto que haga referencia al objeto renombrado manualmente. Por ejemplo, si cambia el nombre de una columna de la tabla y se hace referencia a esa columna en un desencadenador, debe modificar el desencadenador para reflejar el nuevo nombre de columna. Use sys.sql_expression_dependencies para enumerar las dependencias del objeto antes de cambiarle el nombre.
Se aplica a SQL Server (todas las versiones compatibles), Azure SQL Database y Azure Synapse Analytics
Puede cambiar el nombre de un objeto o tipo de datos en la base de datos actual solamente. Los nombres de la mayoría de los tipos de datos y objetos del sistema no se pueden cambiar.
Permisos
Para cambiar el nombre de objetos, columnas e índices, se requiere el permiso ALTER en el objeto. Para cambiar el nombre de los tipos de usuario, se requiere el permiso CONTROL sobre el tipo. Para cambiar el nombre de una base de datos, se requiere pertenecer a los roles fijos de servidor sysadmin o dbcreator
Ejemplos
A. Cambio de nombre de una tabla
El siguiente ejemplo cambia el nombre de la tabla SalesTerritory
a SalesTerr
en el Sales
esquema.
B. Cambio de nombre de una columna
El siguiente ejemplo cambia el nombre de la columna TerritoryID
de la tabla SalesTerritory
a TerrID
.
C. Cambio de nombre de un índice
El siguiente ejemplo cambia el nombre del índice IX_ProductVendor_VendorID
a IX_VendorID
.
D . Cambio de nombre de un tipo de datos de alias
El siguiente ejemplo cambia el nombre del tipo de datos de alias Phone
a Telephone
.
E. Renombrar restricciones
Los siguientes ejemplos renombran una restricción PRIMARY KEY, una restricción CHECK y una restricción FOREIGN KEY. Al cambiar el nombre de una restricción, se debe especificar el esquema al que pertenece la restricción.
F. Cambiar el nombre de las estadísticas
El siguiente ejemplo crea un objeto de estadísticas llamado contactMail1 y luego cambia el nombre de la estadística a NewContact usando sp_rename. Al cambiar el nombre de las estadísticas, el objeto debe especificarse en el formato schema.table.statistics_name.
Ejemplos: Azure Synapse Analytics
G. Cambio de nombre de una columna
El siguiente ejemplo cambia el nombre de la columna c1
en la tabla table1
a col1
.