{"id":147,"date":"2017-09-18T21:40:23","date_gmt":"2017-09-18T21:40:23","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=147"},"modified":"2020-05-20T03:45:08","modified_gmt":"2020-05-20T03:45:08","slug":"tablas-modificacion","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=147","title":{"rendered":"Alter table SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTableD.png\" alt=\"\" class=\"wp-image-1258\" width=\"269\" height=\"267\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTableD.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTableD-150x150.png 150w\" sizes=\"auto, (max-width: 269px) 100vw, 269px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Modificaci\u00f3n de Tablas<\/strong><\/h1>\n\n\n\n<p>Las tablas en la base de datos se deben modificar en algunas ocasiones,\u00a0es posible agregar o quitar campos, restricciones y cambiar de nombre los campos.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Instrucci\u00f3n Alter table<\/strong><\/h2>\n\n\n\n<p>Para modificar una tabla vamos a presentar las opciones de acuerdo a las necesidades de cambios.<\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para cambiar nombre campos<\/strong><\/p>\n\n\n\n<p>Execute sp_rename NombreCampoOriginal, NuevoNombre, TipoObjeto<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para cambiar Tipo de dato de un campo<\/strong><\/p>\n\n\n\n<p>Tenga en cuenta si es posible cambiar el tipo de dato, puede que se pierdan los datos o no se pueda ejecutar la orden cuando los tipos de datos no son compatibles.<\/p>\n\n\n\n<p>Alter table NombreTabla Alter column NuevaDefinicionCampo<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para agregar Campo(s) a la tabla<\/strong><\/p>\n\n\n\n<p>Alter table NombreTabla Add Campo1, Campo2&#8230;<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para agregar Restricciones: PK, FK, Check, Default o Unique<\/strong><\/p>\n\n\n\n<p>Alter table NombreTabla Add constraint NombreConstraint &#8230;.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para eliminar un campo en la tabla<\/strong><\/p>\n\n\n\n<p>Alter table NombreTabla Drop column &#8230;.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para eliminar una restricci\u00f3n<\/strong><\/p>\n\n\n\n<p>Alter table NombreTabla Drop constraint NombreRestriccion<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para desactivar o activar una restricci\u00f3n, esta opci\u00f3n solamente es v\u00e1lida para las&nbsp; restricciones de tipo&nbsp; Check y FK<\/strong><\/p>\n\n\n\n<p>Alter table NombreTabla NoCheck | Check &nbsp;constraint &nbsp;NombreRestriccion<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejercicios<\/h3>\n\n\n\n<p><strong>Crear una tabla (<a href=\"http:\/\/www.manualsqlserver.com\/?p=117\">Ver Creaci\u00f3n de Tablas<\/a>)<\/strong><\/p>\n\n\n\n<p>Create table Empleados<br>(<br>EmpleadosCodigo nchar(3),<br>EmpleadosPaterno nvarchar(20),<br>EmpleadosMaterno nvarchar(20),<br>EmpleadosNombre nvarchar(20),<br>EmpleadosDireccion nvarchar(300),<br>EmpleadosFechaNace Date,<br>constraint EmpleadosCodigoPK primary key (EmpleadosCodigo)<br>)<br>go<\/p>\n\n\n\n<p>Los siguientes ejercicios se trabajar\u00e1n en base a la tabla Empleados creada.<\/p>\n\n\n\n<p><strong>Aumentar el tama\u00f1o del campo C\u00f3digo de 3 a 8 caracteres.<\/strong><br><strong>Al ser la PK debe eliminar la restricci\u00f3n, modificar el campo y luego agregar la PK.<\/strong><\/p>\n\n\n\n<p>Alter table Empleados drop constraint EmpleadosCodigoPK<br>go<br>Alter table Empleados Alter column EmpleadosCodigo nchar(8) not null<br>go<br>Alter table Empleados add constraint EmpleadosPK Primary key (EmpleadosCodigo)<br>go<\/p>\n\n\n\n<p><strong>Agregar el campo Correo<\/strong><\/p>\n\n\n\n<p>Alter table Empleados add Correo nvarchar(30)<br>go<\/p>\n\n\n\n<p><strong>Cambiar el nombre del campo Correo por EmpleadosEmail<\/strong><\/p>\n\n\n\n<p>Execute sp_rename &#8216;Empleados.Correo&#8217;, &#8216;EmpleadosEmail&#8217;, &#8216;COLUMN&#8217;<br>go<br><strong>Precauci\u00f3n: al cambiar cualquier parte del nombre de un objeto pueden dejar de ser scripts v\u00e1lidos y procedimientos almacenados.<\/strong><\/p>\n\n\n\n<p><strong>Ver la estructura de la tabla<\/strong><\/p>\n\n\n\n<p>sp_help Empleados<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"http:\/\/www.manualsqlserver.com\/wp-content\/uploads\/2017\/05\/ManualSQL_AlterTable.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable-1024x252.png\" alt=\"\" class=\"wp-image-1260\" width=\"787\" height=\"194\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable-1024x252.png 1024w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable-300x74.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable-768x189.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable.png 1396w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/a><\/figure><\/div>\n\n\n\n<p><strong>Aumentar los campos de los apellidos y el nombre a 100 caracteres de ancho.<\/strong><\/p>\n\n\n\n<p>Alter table Empleados alter column EmpleadosPaterno nvarchar(100)<br>Alter table Empleados alter column EmpleadosMaterno nvarchar(100)<br>Alter table Empleados alter column EmpleadosNombre nvarchar(100)<br>go<\/p>\n\n\n\n<p><strong>Se pueden visualizar los campos de la tabla empleados, considerando que siempre al inicio del nombre de campo se incluya el nombre de la tabla.<\/strong> Para ello podemos usar la vista del sistema Columns del esquema sys.<\/p>\n\n\n\n<p>select  *  from sys.columns where name like &#8216;Empleados%&#8217;<br>go<\/p>\n\n\n\n<p><strong>Agregar los campos tel\u00e9fono, P\u00e1gina Web y profesi\u00f3n<\/strong><\/p>\n\n\n\n<p>Alter table Empleados add EmpleadosFono nvarchar(50),<br>EmpleadosWeb nvarchar(100), EmpleadosProfesion nvarchar(70)<br>go<\/p>\n\n\n\n<p><strong>Agregar restricci\u00f3n para Email y P\u00e1gina Web que sean \u00fanicas.<\/strong><\/p>\n\n\n\n<p>Alter table Empleados add constraint EmpleadosEmailUQ Unique (EmpleadosEmail)<br>Alter table Empleados add constraint EmpleadosWebUQ Unique (EmpleadosWeb)<br>go<\/p>\n\n\n\n<p><strong>Ver las restricciones de la tabla Empleados<\/strong><\/p>\n\n\n\n<p>select * from sys.key_constraints where name like &#8216;Empleados%&#8217;<br>go<\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p><strong>Agregar el campo sueldo.<\/strong><\/p>\n\n\n\n<p>Alter table Empleados add EmpleadosSueldo Numeric(9,2)<br>go<\/p>\n\n\n\n<p><strong>Agregar registros<\/strong><\/p>\n\n\n\n<p>insert into Empleados<br>values (&#8216;34958556&#8242;,&#8217;PEREDA&#8217;,&#8217;SANCHEZ&#8217;, &#8216;CARLOS&#8217;,&#8217;BOLIVAR 399&#8242;,&#8217;12\/10\/1987&#8242;,<br>&#8216;cperedas@gmail.com&#8217;,&#8217;346476578&#8242;,&#8217;www.carlospereda.com&#8217;,&#8217;Abogado&#8217;,2800),<br>(&#8216;87005984&#8242;,&#8217;CHAVEZ&#8217;,&#8217;WONG&#8217;, &#8216;JOSE&#8217;,&#8217;ALMAGRO 5699&#8242;,&#8217;26\/06\/1995&#8242;,<br>&#8216;jchavezzg@gmail.com&#8217;,&#8217;8976845634&#8242;,&#8217;www.elmatador.com&#8217;,&#8217;Ingeniero&#8217;,980),<br>(&#8216;86439064&#8242;,&#8217;VILLACORTA&#8217;,&#8217;CAMPOS&#8217;, &#8216;PEDRO&#8217;,&#8217;SUCRE 6543&#8242;,&#8217;12\/10\/1987&#8242;,<br>&#8216;pedirogg@gmail.com&#8217;,&#8217;85634545&#8242;,&#8217;www.pedroppee.com&#8217;,&#8217;M\u00e9dico&#8217;,3600),<br>(&#8216;24567895&#8242;,&#8217;ZAVALETA&#8217;,&#8217;JULCA&#8217;, &#8216;FERNANDO&#8217;,&#8217;BRASIL 1398&#8242;,&#8217;24\/02\/1997&#8242;,<br>&#8216;f24@gmail.com&#8217;,&#8217;904564564&#8242;,&#8217;www.ferjpla.com&#8217;,&#8217;Arquitecto&#8217;,870)<br>go<\/p>\n\n\n\n<p><strong>Agregar restricci\u00f3n para que el sueldo no sea menor a 1200, tenga en cuenta que existen registros que no cumplen con la restricci\u00f3n a agregar, adem\u00e1s los registros que no cumplen no se van a modificar<\/strong>.<\/p>\n\n\n\n<p>Alter table Empleados <strong>with nocheck<\/strong> add constraint EmpleadosSueldoCK check (EmpleadosSueldo>=1200)<br>go<\/p>\n\n\n\n<p><strong>Para ver los datos que no cumplen con la restricci\u00f3n agregada.<\/strong><\/p>\n\n\n\n<p>dbcc checkconstraints (EmpleadosSueldoCK)<br>go<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"http:\/\/www.manualsqlserver.com\/wp-content\/uploads\/2017\/05\/ManualSQL_AlterTable02.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable02.png\" alt=\"\" class=\"wp-image-1257\" width=\"837\" height=\"151\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable02.png 816w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable02-300x54.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_AlterTable02-768x139.png 768w\" sizes=\"auto, (max-width: 837px) 100vw, 837px\" \/><\/a><\/figure>\n\n\n\n<p>Se puede hacer una consulta filtrando los valores de la columna Where para saber quienes son los registros con esos sueldos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modificaci\u00f3n de Tablas Las tablas en la base de datos se deben modificar en algunas ocasiones,\u00a0es posible agregar o quitar campos, restricciones y cambiar de nombre los campos.<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=147\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1258,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[106,28,46,47,57],"class_list":["post-147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esquemastablas","tag-alter-table","tag-esquemas","tag-particion","tag-permisos","tag-tablas","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=147"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/147\/revisions"}],"predecessor-version":[{"id":1261,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/147\/revisions\/1261"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1258"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}