martes, 1 de diciembre de 2020

Cambiar nombre a columna de tabla SQL SERVER

En ocasiones es necesario cambiar el nombre de una columna en una tabla de base de datos SQL SERVER, ya sea porque nos equivocamos en el nombre y hasta ahora nos dimos cuenta, o, por funcionalidad misma del programa. Es lógico pensar que ese cambio se realice con una sentencia ALTER, sin embargo, para este caso no es así, existe un stored procedure del sistema, que nos permite realizar ésta acción, pero vamos a pasar a lo interesante y a lo que nos
gusta que es hacerlo.


Creando la tabla.


Primeramente vamos a crear la tabla con sus columnas para después proceder a cambiarles el nombre.

CREATE DATABASE PRUEBAS

GO

 

USE PRUEBAS; 

GO 

 

CREATE TABLE PERSONA(

id int primary key identity,

nombre varchar(max),

apellidooa varchar(max),

apellidoma varchar(max)

)

 

insert into PERSONA (nombre, apellidooa, apellidoma) values ('Emmanuel', 'Urias', 'Robles')

insert into PERSONA (nombre, apellidooa, apellidoma) values ('Pedro', 'Gonzalez', 'Hernandez')


Como vemos en el script tenemos una tabla con 4 campos, pero observemos el campo apellidooa, claramente hay un error, lo correcto debería ser apellidopa, en este caso, podremos pensar que lo más fácil es borrar la tabla y volverla a crear, lo cual es correcto, pero si la tabla ya tiene datos o existen llaves foráneas que hagan referencia a ésta tabla, no será tan fácil borrarla, lo que deberíamos hacer será utilizar el procedimiento que el sistema nos provee para eso.

EXEC sp_rename 'dbo.PERSONA.apellidooa', 'apellidopa', 'COLUMN'; 


Como vemos existe el stored procedure de sistema llamado sp_rename, el cual recibe 3 argumentos, el primero es el nombre de la tabla y el campo que se desea cambiar, el segundo es el nombre nuevo que tendrá y el tercero es el tipo de objeto que se va a cambiar de nombre, en este caso es una columna. En otro post veremos este procedure mas a detalle, por ahora basta con sabe que mediante este procedimiento rápido se puede cambiar el nombre de una columna. Eso sí, nos advertirá que aunque se cambie el nombre de la columna, hay que cambiar los querys o procedimientos que manden llamar a esa columna, pues quedarán con el nombre viejo, por lo que nos muestra el siguiente mensaje

Caution: Changing any part of an object name could break scripts and stored procedures.


Hasta aquí el post queridos lectores, les recuerdo que pueden preguntar, compartir o comentar. Espero también que haya sido de su agrado y utilidad y si pueden, dar un clic en algún anuncio patrocinado.

Saludos





No hay comentarios.:

Publicar un comentario

Tablas temporales en SQL SERVER

Buenas noches queridos lectores, el día de hoy veremos un tema útil acerca de las tablas temporales. Las tablas temporales, son tablas que s...