{"id":131,"date":"2017-09-18T22:20:22","date_gmt":"2017-09-18T22:20:22","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=131"},"modified":"2020-05-19T22:05:12","modified_gmt":"2020-05-19T22:05:12","slug":"tipos-de-datos-definidos-por-el-usuario","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=131","title":{"rendered":"Tipos de datos definidos por el usuario UDT"},"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_TipoDatosUsuario.png\" alt=\"\" class=\"wp-image-1190\" width=\"229\" height=\"244\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TipoDatosUsuario.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TipoDatosUsuario-282x300.png 282w\" sizes=\"auto, (max-width: 229px) 100vw, 229px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Tipos de datos definidos por el usuario en SQL Server<\/strong><\/h1>\n\n\n\n<p>SQL Server permite crear tipos de datos que el usuario puede definir en base a los tipos de datos nativos o propios de SQL Server.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>La creaci\u00f3n de tipos de datos definidos por el usuario va a permitir el uso de los datos nativos de SQL Server de manera mas f\u00e1cil, por ejemplo, para datos de tipo caracter que tengan una longitud variable entre 2 a 80 caracteres, se pueden definir un tipo de datos con una longitud de 100 para que alcance cualquier texto que pase los 80 caracteres y ponerle un nombre de f\u00e1cil recuerdo como Texto100.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Crear tipos de datos definidos por el usuario<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Instrucci\u00f3n Create Type<\/strong><\/h3>\n\n\n\n<p>Create type NombreTipoDato from TipoDatoSQLServer<\/p>\n\n\n\n<p>Los tipos de datos creados podr\u00e1n ser utilizados en la base de datos que se crean.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Eliminar tipos de datos definidos por el usuario<\/strong><\/h2>\n\n\n\n<p>Este no debe estar en uso por ninguna tabla<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Instrucci\u00f3n Drop Type<\/strong><\/h3>\n\n\n\n<p>Drop type NombreTipoDato<\/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<h2 class=\"wp-block-heading\"><strong>Ejemplos<\/strong><\/h2>\n\n\n\n<p><strong>1.&nbsp; &#8212; Crear los tipos de datos para nchar de 10 de ancho, nvarchar de 100 de ancho y otro para precio.<\/strong><\/p>\n\n\n\n<p>Create type Codigo10 from nchar(10) not null<br>Create type TextoObligatorio100 from nvarchar(100) not null<br>Create type Texto100 from nvarchar(100)<br>Create type Precio from numeric(9,2)<br>go<\/p>\n\n\n\n<p><strong>2. &#8212; Listar los tipos de datos definidos por el usuario<\/strong><\/p>\n\n\n\n<p>select * from sys.types where is_user_defined = 1<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_TiposDatosDefinidosUsuario.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TiposDatosDefinidosUsuario.png\" alt=\"\" class=\"wp-image-1191\" width=\"817\" height=\"186\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TiposDatosDefinidosUsuario.png 1025w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TiposDatosDefinidosUsuario-300x68.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_TiposDatosDefinidosUsuario-768x175.png 768w\" sizes=\"auto, (max-width: 817px) 100vw, 817px\" \/><\/a><\/figure><\/div>\n\n\n\n<p><strong>3. &#8212; Ver si existe el tipo de dato FechaObligatoria<\/strong><\/p>\n\n\n\n<p>select * from sys.types where name = &#8216;FechaObligatoria&#8217;<br>go<\/p>\n\n\n\n<p><strong>4. &#8212; Crear un script para el tipo de dato FechaObligatoria&nbsp;<\/strong><strong>sin que reporte error si existe<\/strong><\/p>\n\n\n\n<p>if not exists (select * from sys.types where name = &#8216;FechaObligatoria&#8217;)<br>Begin<br>Create type FechaObligatoria from Date not null<br>End<br>go<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uso de los tipos de datos definidos por el usuario.<\/strong><\/h2>\n\n\n\n<p>Al crear una tabla, basta con especificar despu\u00e9s del nombre de campo el nombre del tipo definido por el usuario.<\/p>\n\n\n\n<p><strong>5. &#8212; Crear tabla&nbsp;Agencias<\/strong><\/p>\n\n\n\n<p>Create table Agencias (<br>AgenciasCodigo Codigo10,<br>AgenciasDescripcion TextoObligatorio100,<br>AgenciasReponsable nvarchar(150),<br>AgenciasDireccion Texto100 constraint AgenciasDireccionDF Default \u00bb )<br>go<\/p>\n\n\n\n<p><strong>6. &#8212; Eliminar el tipo de datos Codigo10<\/strong><\/p>\n\n\n\n<p>Drop type Codigo10<br>go<br><strong>\/* &nbsp;Mens. 3732, Nivel 16, Estado 1, L\u00ednea 1<\/strong><br><strong>No se puede quitar el tipo &#8216;Codigo10&#8217; porque el objeto &#8216;Agencias&#8217; &nbsp;hace referencia a \u00e9l. Puede que haya otros objetos que &nbsp;hagan referencia a este tipo. *\/<\/strong><\/p>\n\n\n\n<p>Para poder eliminar es necesario que la tabla Agencias no use el tipo Codigo10, es decir, cambiar el tipo de dato de la tabla.<\/p>\n\n\n\n<p>Alter table Agencias alter column AgenciasCodigo nchar(10)<br>go<br>Drop type Codigo10<br>go<\/p>\n\n\n\n<p><strong>7. &#8212; Tabla de Buses<\/strong><\/p>\n\n\n\n<p>Create table Buses<br>(BusesCodigo nchar(5),<br>BusesDescripcion TextoObligatorio100,<br>BusesPlaca nvarchar(20),<br>BusesCostoViaje Precio<br>constraint BusesPK Primary key (BusesCodigo) )<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","protected":false},"excerpt":{"rendered":"<p>Tipos de datos definidos por el usuario en SQL Server SQL Server permite crear tipos de datos que el usuario puede definir en base a los tipos de datos nativos o propios de SQL Server.<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=131\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1190,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[28,46,47,53,57,99],"class_list":["post-131","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esquemastablas","tag-esquemas","tag-particion","tag-permisos","tag-sqlserver","tag-tablas","tag-tipos-de-datos","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/131","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=131"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":1194,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/131\/revisions\/1194"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1190"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}