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.

Ver también

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *