{"id":1644,"date":"2020-05-23T23:20:29","date_gmt":"2020-05-23T23:20:29","guid":{"rendered":"http:\/\/manualsqlserver.com\/?p=1644"},"modified":"2020-05-23T23:20:29","modified_gmt":"2020-05-23T23:20:29","slug":"snippets-en-sql-server","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=1644","title":{"rendered":"Snippets en SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"268\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets___D.png\" alt=\"\" class=\"wp-image-1645\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Uso de Snippets en SQL Server<\/h2>\n\n\n\n<p>Desde SQL Server 2012 los fragmentos de c\u00f3digo se incluyen bas\u00e1ndose en el shell de Visual Studio 2010, caracter\u00edstica que es muy familiar a los programadores que usan Visual Studio, los fragmentos de c\u00f3digo o Snippets fueron creados teniendo en cuenta el uso repetido de sentencias T-SQL, como por ejemplo la creaci\u00f3n de procedimientos almacenados, la creaci\u00f3n de Triggers o la creaci\u00f3n de Vistas.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Los Snippets hacen mucho m\u00e1s eficiente acceder a un bloque de c\u00f3digo que contiene los elementos de c\u00f3digo comunes, como crear un procedimiento almacenado o crear una funci\u00f3n para ayudar al desarrollador a construir en la parte superior del bloque de c\u00f3digo.<br>Los fragmentos de c\u00f3digo o Snippets son bloques de construcci\u00f3n de c\u00f3digo que el desarrollador puede usar como punto de partida al ecribir los scripts T-SQL. Esta caracter\u00edstica puede ayudar a la productividad del desarrollador mientras aumenta la reutilizaci\u00f3n y estandarizaci\u00f3n al permitir al equipo de desarrollo utilizar plantillas existentes o crear y personalizar una n ueva.<br>Los fragmentos de c\u00f3digo ayudan a proporcionar una mejor experiencia de edici\u00f3n del c\u00f3digo T-SQL, pero, adem\u00e1s, el fragmento es una Plantilla XML que se puede utilizar para el desarrollo para garantizar la coherencia en todo el equipo de desarrollo.<\/p>\n\n\n\n<p style=\"font-size:18px\"><strong>Los fragmentos de c\u00f3digo pueden caer en cualquiera de estas tres  categor\u00edas:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Fragmentos de expansi\u00f3n<\/strong><\/li><li><strong>Fragmentos de sonido envolvente y<\/strong><\/li><li><strong>Fragmentos personalizados.<\/strong><\/li><\/ul>\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>Los fragmentos de expansi\u00f3n enumeran el esquema com\u00fan de los comandos T-SQL, como Seleccionar, Insertar o Crear Tabla de declaraciones.<br>Los fragmentos de sonido envolvente permiten construcciones como while, if else o begin end.<br>Los fragmentos personalizados con plantillas personalizadas que se pueden invocar a trav\u00e9s del men\u00fa de fragmentos de c\u00f3digo. Puede crear un fragmento personalizado y agregue al servidor importando el fragmento utilizando el Administrador de fragmentos de c\u00f3digo.<br>La categor\u00eda de fragmentos personalizados aparecer\u00e1 en el Administrador de fragmentos de c\u00f3digo.<\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>Como usar los fragmentos de c\u00f3digo o Snippets<\/strong><\/p>\n\n\n\n<p>En este art\u00edculo se mostrar\u00e1 como usar los fragmentos de c\u00f3digo existentes,<br>en otro art\u00edculo se va a mostrar como administrar los mismos.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Agregar un Snippet<\/strong><\/p>\n\n\n\n<p>Para agregar un Snippet o fragmento de c\u00f3digo se procede de la siguiente forma:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Pulsar clic en la opci\u00f3n Editar (Edit) del men\u00fa principal<\/li><li>Seleccionar \u00abIntelliSense\u00bb<\/li><li>Luego \u00abInsertar fragmento de c\u00f3digo\u2026\u00bb<\/li><li>Luego Seleccionar el fragmento de c\u00f3digo a Insertar<\/li><li>Para finalizar, seleccionar la opci\u00f3n adecuada del fragmento a insertar, existen fragmentos que c\u00f3digo que tienen una sola opci\u00f3n, obviamente para los que tienen mas de una opci\u00f3n se debe seleccionar la adecuada.<\/li><\/ol>\n\n\n\n<p class=\"has-background has-very-light-gray-background-color\"><strong>Tip: se puede pulsar la combinaci\u00f3n de las teclas Ctrl+K y Ctrl+X para mostrar la lista de snippets disponibles. Esto reemplaza a los pasos 1, 2 y 3 descritos anteriormente.<\/strong><\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>Ejemplos usando Snippets<\/strong><\/p>\n\n\n\n<p style=\"font-size:18px\"><strong>Ejemplo N\u00ba 1<\/strong><\/p>\n\n\n\n<p>Para insertar un Snippet para crear un procedimiento almacenado b\u00e1sico<br>(<a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=314\" target=\"_blank\">Ver Procedimientos almacenados<\/a>)<br>Pulsar Ctrl+K, Ctrl+X<br>Seleccionar Procedimiento almacenado (Ver figura)<\/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\/05\/ManualSQLServer_UsoSnippets__01.png\" alt=\"\" class=\"wp-image-1646\" width=\"620\" height=\"323\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__01.png 422w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__01-300x156.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p>Luego seleccionar \u00abCrear plantilla de procedimiento b\u00e1sica\u00bb<\/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\/05\/ManualSQLServer_UsoSnippets__02.png\" alt=\"\" class=\"wp-image-1647\" width=\"698\" height=\"117\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__02.png 575w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__02-300x50.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/figure>\n\n\n\n<p>El resultado es el siguiente:<br><strong>CREATE PROCEDURE dbo.Sample_Procedure<br>@param1 int = 0,<br>@param2 int<br>AS<br>SELECT @param1,@param2<br>RETURN 0<\/strong><\/p>\n\n\n\n<p>Note que se ha insertado un fragmento de c\u00f3digo donde se define un SP con nombre <strong>Sample_Procedure<\/strong>, tiene dos par\u00e1metros y tiene un Select, el usuario debe cambiar y editar el SP de acuerdo a sus requerimientos.<\/p>\n\n\n\n<p style=\"font-size:18px\"><strong>Ejemplo N\u00ba 2<\/strong><\/p>\n\n\n\n<p>Para insertar un Snippet para crear una funci\u00f3n definida por el usuario que retorna una tabla. (<a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=335\" target=\"_blank\">Ver Funciones definidas por el usuario<\/a>)<br>Pulsar Ctrl+K, Ctrl+X<br>Seleccionar \u00abFunci\u00f3n\u00bb (Ver figura)<\/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\/05\/ManualSQLServer_UsoSnippets__03.png\" alt=\"\" class=\"wp-image-1648\" width=\"592\" height=\"322\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__03.png 416w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__03-300x163.png 300w\" sizes=\"auto, (max-width: 592px) 100vw, 592px\" \/><\/figure>\n\n\n\n<p>Luego seleccionar \u00abCrear funci\u00f3n de tabla insertada\u00bb<\/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\/05\/ManualSQLServer_UsoSnippets__04.png\" alt=\"\" class=\"wp-image-1649\" width=\"668\" height=\"121\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__04.png 503w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__04-300x54.png 300w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><\/figure>\n\n\n\n<p>El resultado es el siguiente:<br><strong>CREATE FUNCTION [dbo].[FunctionName]<br>(<br>@param1 int,<br>@param2 char(5)<br>)<br>RETURNS TABLE AS RETURN<br>(<br>SELECT @param1 AS c1,<br>@param2 AS c2<br>)<\/strong><br>Note que se ha insertado un fragmento de c\u00f3digo donde se define una funci\u00f3n de tabla insertada que por defecto se llama FunctionName, tiene dos par\u00e1metros y tiene un Select, el usuario debe cambiar y editar de acuerdo a sus requerimientos.<\/p>\n\n\n\n<p style=\"font-size:18px\"><strong>Ejemplo N\u00ba 3<\/strong><\/p>\n\n\n\n<p>Para insertar un Snippet para crear un trigger <br>Complementar: <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=385\" target=\"_blank\">Ver Triggers<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=1468\" target=\"_blank\">Ver Trigger Logon<\/a> y <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=1461\" target=\"_blank\">Ver Trigger DDL<\/a><br>Pulsar Ctrl+K, Ctrl+X<br>Seleccionar Trigger (Ver figura)<\/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\/05\/ManualSQLServer_UsoSnippets__05.png\" alt=\"\" class=\"wp-image-1650\" width=\"621\" height=\"317\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__05.png 408w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__05-300x153.png 300w\" sizes=\"auto, (max-width: 621px) 100vw, 621px\" \/><\/figure>\n\n\n\n<p>Luego \u00abCrear Desencadenador\u00bb<\/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\/05\/ManualSQLServer_UsoSnippets__06.png\" alt=\"\" class=\"wp-image-1651\" width=\"676\" height=\"74\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__06.png 568w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__06-300x33.png 300w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/figure>\n\n\n\n<p>El resultado es el siguiente:<br><strong>CREATE TRIGGER TriggerName<br>ON [dbo].[TableName]<br>FOR DELETE, INSERT, UPDATE<br>AS<br>BEGIN<br>SET NOCOUNT ON<br>END<\/strong><\/p>\n\n\n\n<p style=\"font-size:18px\"><strong>Ejemplo N\u00ba 4<\/strong><\/p>\n\n\n\n<p>Para insertar un Snippet para crear un Vista<br>Complementar: Ver Vistas, Ver Vistas Indizadas<br>Pulsar Ctrl+K, Ctrl+X<br>Seleccionar View (Ver figura)<\/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\/05\/ManualSQLServer_UsoSnippets__07.png\" alt=\"\" class=\"wp-image-1652\" width=\"661\" height=\"335\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__07.png 406w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__07-300x152.png 300w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p>Luego \u00abCrear Vista\u00bb<\/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\/05\/ManualSQLServer_UsoSnippets__08.png\" alt=\"\" class=\"wp-image-1653\" width=\"654\" height=\"81\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__08.png 468w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoSnippets__08-300x37.png 300w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/figure>\n\n\n\n<p>El resultado es el siguiente:<br><strong>CREATE VIEW dbo.Sample_View<br>AS<br>Select * from dbo.Sample_Table<\/strong><\/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>Uso de Snippets en SQL Server Desde SQL Server 2012 los fragmentos de c\u00f3digo se incluyen bas\u00e1ndose en el shell de Visual Studio 2010, caracter\u00edstica que es muy familiar a los programadores que usan Visual Studio, los fragmentos de c\u00f3digo o Snippets fueron creados teniendo en cuenta el uso repetido de sentencias T-SQL, como por &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=1644\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1645,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[16,18,173],"class_list":["post-1644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","tag-create-function","tag-create-procedure","tag-snippet","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1644","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=1644"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1644\/revisions"}],"predecessor-version":[{"id":1654,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1644\/revisions\/1654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1645"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}