{"id":2199,"date":"2020-09-11T16:34:53","date_gmt":"2020-09-11T16:34:53","guid":{"rendered":"http:\/\/manualsqlserver.com\/?p=2199"},"modified":"2020-09-11T16:34:54","modified_gmt":"2020-09-11T16:34:54","slug":"insertar-varios-registros-a-la-vez-sql-server","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=2199","title":{"rendered":"Insertar varios registros a la vez SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"220\" height=\"260\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros__D.png\" alt=\"\" class=\"wp-image-2200\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Insertar varios registros a la vez SQL Server<\/h2>\n\n\n\n<p>En algunas aplicaciones es necesario insertar varios registros en una misma instrucci\u00f3n, puede ser por ejemplo el detalle de una pedido, el detalle de un documento de venta, los integrantes de un grupo de trabajo, etc.<br>En este art\u00edculo se explica como insertar varios registros a la vez usando un procedimiento almacenado y un tipo de dato definido por el usuario con formato tipo tabla.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p style=\"font-size:22px\"><strong>Para mas informaci\u00f3n ver:<\/strong><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=314\" target=\"_blank\">Procedimientos Almacenados<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=131\" target=\"_blank\" rel=\"noreferrer noopener\">Tipo de datos definidos por el usuario<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1771\" target=\"_blank\" rel=\"noreferrer noopener\">Tipos de datos definidos por el usuario con formato de tabla<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=1493\" target=\"_blank\" rel=\"noreferrer noopener\">Variables en SQL Server<\/a><\/p>\n\n\n\n<p style=\"font-size:24px\"><strong>Ejercicio<\/strong><\/p>\n\n\n\n<p>Para el ejemplo a realizar se va a crear una base de datos, luego una tabla y usando un procedimiento almacenado se va a agregar en una sola instrucci\u00f3n varios registros a la vez.<\/p>\n\n\n\n<p><strong>Create database ProcesosSATT<br>go<br>use ProcesosSATT<br>go<\/strong><\/p>\n\n\n\n<p>Crear una tabla Contribuyente para insertarle datos<\/p>\n\n\n\n<p><strong>Create table Contribuyente<br>(<br>ContribuyenteCodigo nchar(8),<br>ContribuyentePaterno nvarchar(80) NOT NULL,<br>ContribuyenteMaterno nvarchar(80) NOT NULL,<br>ContribuyenteNombres nvarchar(100) NOT NULL<br>constraint ContribuyentePK Primary key (ContribuyenteCodigo)<br>)<br>go<\/strong><\/p>\n\n\n\n<p>Crear un tipo de dato con formato de tabla con los mismos campos que la tabla Contribuyente<\/p>\n\n\n\n<p><strong>Create type TipoDatoContribuyente As Table<br>(<br>ContribuyenteCodigo nchar(8),<br>ContribuyentePaterno nvarchar(80) ,<br>ContribuyenteMaterno nvarchar(80) ,<br>ContribuyenteNombres nvarchar(100)<br>)<br>go<\/strong><\/p>\n\n\n\n<p>Crear un procedimiento que inserte datos a la tabla basado sobre el tipo de dato creado<\/p>\n\n\n\n<p><strong>Create procedure spContribuyenteInsertarGrupo<br>(@Contribuyentes As TipoDatoContribuyente READONLY)<br>As<br>Set nocount on<br>Insert Into Contribuyente<br>(ContribuyenteCodigo, ContribuyentePaterno ,<br>ContribuyenteMaterno, ContribuyenteNombres)<br>SELECT C.ContribuyenteCodigo, C.ContribuyentePaterno,<br>C.ContribuyenteMaterno, C.ContribuyenteNombres<br>FROM @Contribuyentes as C<br>go<\/strong><\/p>\n\n\n\n<p class=\"has-cyan-bluish-gray-background-color has-background\"><strong>Note que el par\u00e1metro con el tipo de dato definido por el usuario con formato tipo tabla debe ser de s\u00f3lo lectura.<\/strong><\/p>\n\n\n\n<p>Para insertar los datos usando el procedimiento, desde SQL Server Management Studio se crea una variable con el tipo de dato definido por el usuario con formato de tabla llamado TipoDatoContribuyente, luego a la variable creada se le inserta registros y se ejecuta el procedimiento almacenado.<\/p>\n\n\n\n<p><strong>Declare @Datos As TipoDatoContribuyente<br>INSERT @Datos<br>VALUES (&#8216;00070099&#8242;,&#8217;Ch\u00e1vez&#8217;,&#8217;Albuquerque&#8217;,&#8217;Mario&#8217;),<br>(&#8216;00070198&#8242;,&#8217;Luque&#8217;,&#8217;S\u00e1nchez&#8217;,&#8217;Fernando&#8217;),<br>(&#8216;00072528&#8242;,&#8217;Montero&#8217;,&#8217;Paredes&#8217;,&#8217;Cecilia&#8217;),<br>(&#8216;00073698&#8242;,&#8217;Alvarado&#8217;,&#8217;Mantilla&#8217;,&#8217;Aracely&#8217;),<br>(&#8216;00072207&#8242;,&#8217;Villacorta&#8217;,&#8217;Acosta&#8217;,&#8217;Carolina&#8217;)<br>EXEC spContribuyenteInsertarGrupo @Contribuyentes = @Datos<br>go<\/strong><\/p>\n\n\n\n<p>Para visualizar los registros insertados<\/p>\n\n\n\n<p>select * from Contribuyente<br>go<\/p>\n\n\n\n<p>La imagen muestra los registros insertados.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros_01.png\" alt=\"\" class=\"wp-image-2201\" width=\"759\" height=\"214\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros_01.png 922w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros_01-300x85.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros_01-768x217.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/09\/ManualSQL_InsertarVariosRegistros_01-703x198.png 703w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><\/figure>\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>Insertar varios registros a la vez SQL Server En algunas aplicaciones es necesario insertar varios registros en una misma instrucci\u00f3n, puede ser por ejemplo el detalle de una pedido, el detalle de un documento de venta, los integrantes de un grupo de trabajo, etc.En este art\u00edculo se explica como insertar varios registros a la vez &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=2199\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":2200,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[37,66,63],"class_list":["post-2199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-registros-vistas","tag-insert","tag-procedimientos-almacenados","tag-variables","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2199","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=2199"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2199\/revisions"}],"predecessor-version":[{"id":2202,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2199\/revisions\/2202"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/2200"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}