{"id":1426,"date":"2023-12-08T13:26:45","date_gmt":"2023-12-08T16:26:45","guid":{"rendered":"https:\/\/blog.galsoft.com.ar\/?p=1426"},"modified":"2023-12-08T13:26:45","modified_gmt":"2023-12-08T16:26:45","slug":"como-insertar-un-valor-explicito-en-una-columna-identity","status":"publish","type":"post","link":"https:\/\/blog.galsoft.com.ar\/?p=1426","title":{"rendered":"\u00bfC\u00f3mo insertar un valor explicito en una columna IDENTITY?"},"content":{"rendered":"<p>Una columna del tipo\u00a0<code>IDENTITY<\/code>\u00a0no puede recibir un valor expl\u00edcito, ya que es el motor el que se encarga de completarlo, en este caso con un num\u00e9rico incremental.<\/p>\n<p>La forma normal de hacer un\u00a0<code>INSERT<\/code>, d\u00f3nde dejamos que el motor complete este dato es quitar la columna de la sentencia, por ejemplo:<\/p>\n<pre class=\"wp-block-code\"><code>INSERT INTO TiposComprobantes (Nombre) VALUES (&#039;Factura A&#039;);\n<\/code><\/pre>\n<p>Sin embargo, a\u00fan siendo un\u00a0<code>IDENTITY<\/code>\u00a0puede que necesitemos insertar un valor expl\u00edcito, por ejemplo en un sistema heredado, tal vez el\u00a0<code>ID<\/code>\u00a0ya se encuentre referenciado en otras tablas y debamos mantener esta consistencia. En estos casos podemos &#8220;deshabilitar&#8221; el comportamiento por defecto del\u00a0<code>IDENTITY<\/code>, mediante la clausula\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/set-identity-insert-transact-sql?view=sql-server-2017\"><code>SET IDENTITY_INSERT<\/code><\/a>, por ejemplo:<\/p>\n<pre class=\"wp-block-code\"><code>SET IDENTITY_INSERT TiposComprobantes ON\n\nINSERT INTO TiposComprobantes (Id, Nombre) VALUES (1, &#039;Factura A&#039;);\n\nSET IDENTITY_INSERT TiposComprobantes OFF\n<\/code><\/pre>\n<p>Comentarios:<\/p>\n<ul class=\"wp-block-list\">\n<li>Con\u00a0<code>SET IDENTITY_INSERT &lt;NombreTabla&gt; ON<\/code>\u00a0permitimos la actualizaci\u00f3n de valores expl\u00edcitos en la Tabla, una vez hecho esto, siempre que el valor insertado sea superior al m\u00e1ximo de la tabla, se actualiza la semilla del\u00a0<code>IDENTITY<\/code>.<\/li>\n\n<li>Recordar que una columna\u00a0<code>IDENTITY<\/code>\u00a0no implica necesariamente que el valor de la misma sea estrictamente \u00fanico, esto lo define una clave de este tipo.<\/li>\n\n<li>Para hacer esto debemos tener permisos de\u00a0<code>ALTER<\/code>\u00a0sobre la tabla.<\/li>\n\n<li>Solo una tabla puede tener la condici\u00f3n de\u00a0<code>IDENTITY_INSERT ON<\/code>\u00a0en la sesi\u00f3n \/ conexi\u00f3n activa, tratar de hacer lo mismo con otra tabla arrojar\u00e1 un error.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Una columna del tipo\u00a0IDENTITY\u00a0no puede recibir un valor expl\u00edcito, ya que es el motor el que se encarga de completarlo, en este caso con un num\u00e9rico incremental. La forma normal de hacer un\u00a0INSERT, d\u00f3nde dejamos que el motor complete este dato es quitar la columna de la sentencia, por ejemplo: Sin embargo, a\u00fan siendo un\u00a0IDENTITY\u00a0puede [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[10],"tags":[],"class_list":["post-1426","post","type-post","status-publish","format-standard","hentry","category-programacion","entry"],"_links":{"self":[{"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/posts\/1426","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1426"}],"version-history":[{"count":1,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/posts\/1426\/revisions"}],"predecessor-version":[{"id":1427,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=\/wp\/v2\/posts\/1426\/revisions\/1427"}],"wp:attachment":[{"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.galsoft.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}