{"id":378,"date":"2017-09-18T21:00:11","date_gmt":"2017-09-18T21:00:11","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=378"},"modified":"2020-05-20T17:10:53","modified_gmt":"2020-05-20T17:10:53","slug":"tablas-ejercicio-modificar-agregar-check","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=378","title":{"rendered":"Alter table SQL Server &#8211; agregar Check"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"222\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TablasEjercicioD.png\" alt=\"\" class=\"wp-image-1290\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Modificaci\u00f3n de Tablas en SQL Server<\/strong><\/h1>\n\n\n\n<p>Las tablas en ocasiones se tienen que modificar ya sea por nuevas funcionalidades en el sistema o por nuevas reglas de negocio de los datos en estas, es posible que se agreguen tablas nuevas y algunas se tengan que modificar. Las reglas de negocio para las tablas existentes pueden cambiar, lo \u00a0que hace en ocasiones necesario de agregar restricciones a las tablas. En este ejercicio se muestra como agregar campos, restricciones y analizar los registros que no cumplan con una restricci\u00f3n de tipo Check.<\/p>\n\n\n\n<!--more-->\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<h3 class=\"wp-block-heading\">Creaci\u00f3n y modificaci\u00f3n de tablas.<\/h3>\n\n\n\n<p><strong>1. Primero crear una base de datos, si no tienen las unidades C:, D: y E: pueden cambiar por solamente C:<\/strong><\/p>\n\n\n\n<p>xp_create_subdir &#8216;C:\\BD&#8217;<br>go<br>xp_create_subdir &#8216;D:\\BD&#8217;<br>go<br>xp_create_subdir &#8216;E:\\BD&#8217;<br>go<br>Create database SistemasG1<br>on Primary<br>(Name=&#8217;S1&#8242;,Filename=&#8217;C:\\BD\\S1.mdf&#8217;), (Name=&#8217;S2&#8242;,Filename=&#8217;E:\\BD\\S2.ndf&#8217;),<br>filegroup Contable<br>(Name=&#8217;S3&#8242;,Filename=&#8217;D:\\BD\\S3.ndf&#8217;)<br>log on<br>(Name=&#8217;Log1&#8242;,Filename=&#8217;C:\\BD\\Log1.ldf&#8217;)<br>go<br>use SistemasG1<br>go<\/p>\n\n\n\n<p><strong>2. Ejemplo para el m\u00f3dulo de Ventas.&nbsp;<\/strong><strong>Tabla Categorias: Esquema: dbo, Grupo: Primary<\/strong><\/p>\n\n\n\n<p>Create table Categorias<br>(<br>CategoriasCodigo nchar(4), CategoriasDescripcion nvarchar(100),<br>CategoriasEstado nchar(1), CategoriasFechaCreacion Date,<br>constraint CategoriasPK Primary key (CategoriasCodigo)<br>)<br>go<\/p>\n\n\n\n<p><strong>3. La tabla Clientes se crear\u00e1 en el esquema Ventas, grupo Contable<\/strong><\/p>\n\n\n\n<p>Create schema Ventas<br>go<br>Create table Ventas.Clientes<br>(<br>ClientesCodigo nchar(8), ClientesNombre nvarchar(200),<br>ClientesDireccion nvarchar(300), ClientesFechaRegistro Date,<br>constraint ClientesPK Primary key (ClientesCodigo)<br>) on Contable<br>go<\/p>\n\n\n\n<p><strong>4. Productos en el esquema Comercial: c\u00f3digo, descripci\u00f3n,&nbsp;<\/strong><strong>precio, Stock, estado, la categoria a la que pertenece (FK)<\/strong><\/p>\n\n\n\n<p>Create schema Comercial<br>go<br>create table Comercial.Productos<br>( ProductosCodigo nchar(4), ProductosDescripcion nvarchar(100),<br>ProductosPrecio Numeric(9,2),ProductosStock Numeric(9,2),<br>ProductosEstado nchar(1), CategoriasCodigo nchar(4),<br>constraint ProductosPK primary key (ProductosCodigo),<br>constraint ProductosCategoriasFK Foreign key (CategoriasCodigo)<br>references dbo.Categorias (CategoriasCodigo)<br>) on [Primary]<br>go<\/p>\n\n\n\n<p><strong>Modificaci\u00f3n de tablas: (<a href=\"http:\/\/www.manualsqlserver.com\/?p=147\">Ver Modificaci\u00f3n de tablas<\/a>)<\/strong><\/p>\n\n\n\n<p><strong>Alter table Esquema.NombreTabla&#8230;<\/strong><\/p>\n\n\n\n<p>Campos Agregar: add columna<br>Modificar: Alter column Columna<br>Eliminar: Drop Column NombreColumna<br>Restricciones:<br>Agregar: Add constraint &#8230;.<br>Eliminar: Drop contraint &#8230;.<\/p>\n\n\n\n<p>Informaci\u00f3n detallada en el post de modificaci\u00f3n de tablas, cuyo link se encuentra l\u00edneas arriba.<\/p>\n\n\n\n<p><strong>5. Agregar en la tabla Clientes los campos Correo y Telefono<\/strong><\/p>\n\n\n\n<p>Alter table Ventas.Clientes<br>add ClientesCorreo nvarchar(100), ClientesTelefono nvarchar(50)<br>go<\/p>\n\n\n\n<p><strong>6. Ver la estructura de la tabla<\/strong><\/p>\n\n\n\n<p>sp_help &#8216;Ventas.clientes&#8217;<br>go<\/p>\n\n\n\n<p><strong>6. Agregar restricci\u00f3n para el campo Precio en la tabla productos condici\u00f3n Precio &gt;= 0<\/strong><\/p>\n\n\n\n<p>Alter table Comercial.Productos add constraint ProductosPrecioCK<br>Check (ProductosPrecio &gt;= 0)<br>go<\/p>\n\n\n\n<p><strong>7. Crear la tabla Empleados<\/strong><\/p>\n\n\n\n<p>Create table Empleados<br>(Codigo nchar(3), nombre nvarchar(100), Sueldo Numeric(9,2),<br>constraint CodigoPK Primary key (Codigo)<br>)<br>go<\/p>\n\n\n\n<p><strong>8. Insertar registros<\/strong><\/p>\n\n\n\n<p>insert into Empleados values (&#8216;520&#8242;,&#8217;Carlos&#8217;,1850),<br>(&#8216;089&#8242;,&#8217;Juan&#8217;,850),(&#8216;395&#8242;,&#8217;Guillermo&#8217;,1250)<br>go<\/p>\n\n\n\n<p><strong>9. Ver los registros<\/strong><\/p>\n\n\n\n<p>select * from Empleados<br>go<\/p>\n\n\n\n<p><strong>9. Agregar restricci\u00f3n para el sueldo &gt;= 1000, note que uno no cumple.<\/strong><\/p>\n\n\n\n<p>Alter table Empleados<br>add constraint EmpleadosSueldoCK check (sueldo&gt;=1000)<br>go<br>Mens. 547, Nivel 16, Estado 0, L\u00ednea 1<br>Instrucci\u00f3n ALTER TABLE en conflicto con la restricci\u00f3n CHECK \u00abEmpleadosSueldoCK\u00bb. El conflicto ha aparecido en la base de datos \u00abSistemasG1\u00bb, tabla \u00abdbo.Empleados\u00bb, column &#8216;Sueldo&#8217;.<\/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>10. Debe agregarse a la instrucci\u00f3n la cl\u00e1usula With Nocheck<\/strong><\/p>\n\n\n\n<p>Alter table Empleados <strong>with nocheck<\/strong><br>add constraint EmpleadosSueldoCK check (sueldo&gt;=1000)<br>go<\/p>\n\n\n\n<p><strong>11. Prueba de la restricci\u00f3n<\/strong><\/p>\n\n\n\n<p>insert into Empleados values (&#8216;814&#8242;,&#8217;Aldo&#8217;,950)<br>go<\/p>\n\n\n\n<p>El registro no se agrega porque el sueldo es 950.<\/p>\n\n\n\n<p><strong>12. Se puede usar DBCC CheckConstraints para ver los sueldos no cumplen<\/strong><\/p>\n\n\n\n<p>dbcc checkconstraints (EmpleadosSueldoCK)<br>go<\/p>\n\n\n\n<p><strong>13. Para saber quien es el empleado.<\/strong><\/p>\n\n\n\n<p>select * from Empleados where Sueldo = 850<br>go<\/p>\n\n\n\n<p><strong>14. Para listar los constraints tipo Check<\/strong><\/p>\n\n\n\n<p>select * from sys.check_constraints<br>go<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modificaci\u00f3n de Tablas en SQL Server Las tablas en ocasiones se tienen que modificar ya sea por nuevas funcionalidades en el sistema o por nuevas reglas de negocio de los datos en estas, es posible que se agreguen tablas nuevas y algunas se tengan que modificar. Las reglas de negocio para las tablas existentes pueden &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=378\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1290,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[106,28,46,47,57],"class_list":["post-378","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\/378","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=378"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/378\/revisions"}],"predecessor-version":[{"id":1292,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/378\/revisions\/1292"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1290"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}