Compartir a través de


SQL Server 2012: Fragmentos de código de T-SQL

Los fragmentos en SQL Server 2012 son en esencia plantillas que pueden acelerar la creación de instrucciones para la base de datos.

Saleem Hakani

Imaginar una serie de comandos que utilice siempre crear un desencadenador, tabla, procedimiento almacenado o incluso una instrucción Select. Ahora imagine tener todos esos comandos establecidos y listos para usar. Usted puede reducir enormemente la cantidad de tiempo y código que tienes que escribir usando los nuevos fragmentos de código T-SQL en SQL Server 2012.

Fragmentos de T-SQL le permiten rápidamente las declaraciones de la generación T-SQL sin tener que recordar los comandos o su sintaxis. Puede utilizar esta característica para ayudar a reducir el tiempo de desarrollo y aumentar la productividad de los desarrolladores y administradores.

Plantillas de fragmento de código en SQL Server 2012 están basadas en XML con campos predefinidos y valores. Cuando se utiliza un fragmento de código T-SQL, estos campos se resaltan y puede ficha a través de cada campo y cambiar los valores según sea necesario.

Fragmentos están catalogados por la facilidad de uso. Puede ver y seleccionar varios fragmentos de código basados en la categoría. SQL Server 2012 presenta a tres tipos de fragmentos de código:

  • **Predeterminada de fragmentos (o fragmentos de expansión):**Estas son las plantillas de código para varios comandos T-SQL que rápidamente puede insertar en el código de T-SQL al crear tablas, procedimientos almacenados, desencadenadores y así sucesivamente.
  • **Fragmentos de sonido envolvente:**Estas son las plantillas de código que le ayudan a implementar código construye como comenzar final, si, mientras, etcétera.
  • **Fragmentos de código personalizados:**Puede crear sus propios fragmentos personalizados que aparecerán con el menú de fragmento.

Crear fragmentos de código personalizado

Veamos cómo crear un fragmento de código personalizado y agregarlo al menú fragmento. Crear y utilizar un fragmento son un proceso de tres pasos:

  1. Crear un fragmento de código usando XML
  2. Registrar el fragmento de código en SQL Server Management Studio (SSMS)
  3. Invocar el fragmento al usar el Editor de consultas

De forma predeterminada, todos los fragmentos de código T-SQL se almacenan en la siguiente carpeta y guardados como archivos de snippet:
C:\Archivos de programa\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\SQL\Snippets\1033

Paso 1. Crear un archivo de fragmentos de T-SQL con XML
Aquí está un fragmento de código que puede utilizar para escribir una instrucción Select para cualquier tabla (también le permitirá utilizar una instrucción CASE para una comprobación de igualdad de una columna):

CASE_END.SNIPPET File <?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Case-End</Title> <Description> Insert Case...End Construct. </Description> <Author> Saleem Hakani (Microsoft Corporation) </Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="SQL"> <![CDATA[ Select <Column_Name1>, <Column_Name2>, <Column_Name3>, <Column_Name4>= CASE <Column_Name4> WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' ELSE 'Value not found' END, <Column_Name5>, <Column_Name6> From <Table_Name> Go ]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>

Paso 2. Registrar el fragmento con SSMS

Una vez que haya creado este archivo, utilice el administrador de fragmentos de código para registrar el fragmento con SSMS. Puede agregar una carpeta nueva basada en la categoría de fragmento o importar fragmentos individuales a la carpeta Mis fragmentos de código.

Para agregar una carpeta de fragmentos:

  1. Lanzar SSMS
  2. Seleccione los elementos del menú Herramientas y haga clic en Administrador de fragmentos de código, que inicia el administrador de fragmento
  3. Haga clic en el "Agregar" botón
  4. Busque la carpeta que contiene CASE_END.Fragmento de archivo y haga clic en el botón Seleccionar carpeta

El paso siguiente es importar el fragmento en SSMS:

  1. Lanzar SSMS
  2. Seleccione los elementos del menú Herramientas y haga clic en Administrador de fragmentos de código
  3. Haga clic en el botón Importar en la parte inferior
  4. Busque la carpeta que contiene el archivo CASE_END.snippet y seleccione el archivo CASE_End.snippet y, a continuación, haga clic en el botón abrir

Paso 3. Invocar o insertar un fragmento de T-SQL desde el Editor de consultas

Ahora tienes un fragmento llamado CASE_END que se puede invocar desde el editor de consultas con la tecla de acceso directo pulsando CTRL + K + X. A continuación, seleccione la carpeta de categoría en la que ha almacenado el fragmento de código. También podría haga clic derecho en el menú contextual en el editor de consultas y seleccione Insertar fragmento de código.

También puede invocar un fragmento pulsando en el menú contextual en el editor de consultas. Esto le presentará varias opciones de fragmento.

Con estos pasos, puede crear fragmentos de código T-SQL y registrarlos con SSMS. También puede crear complejos fragmentos de diversas tareas regulares y hacer su vida administrar SQL Server mucho más fácil.

Fragmento de soluciones

Imagina que eres un desarrollador o un responsable de la seguridad de los servidores DBA. Usted puede tener 500 inicios de sesión en SQL Server, pero no sabes las funciones de nivel de servidor a la que se asignan estos inicios de sesión de 500. Si fueras a comprobar individualmente las propiedades de inicio de cada sesión, podría tomar horas o incluso días. Tener una forma automatizada para comprobar rápidamente todos los inicios de sesión de nivel de servidor sería reducir el tiempo al código, así como aumentar la precisión de código y desarrollador y productividad del DBA.

Aquí está un fragmento de código que le permitirá ver rápidamente los inicios de sesión de nivel de servidor y sus funciones de nivel de servidor y permisos. Esta lista de fragmento de SecuritySPY identifica los inicios de sesión de nivel de servidor y el papel que está asignados:

<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>SQL_SecuritySPY - By Saleem Hakani (Microsoft Corporation)</Title> <Description> Shortcut for checking SQL Server Server Role Permissions </Description> <Author> Saleem Hakani (Microsoft Corporation) </Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="SQL"> <![CDATA[ --Author: Saleem Hakani (Microsoft Corporation) --Website: Http://sqlcommunity.com Select 'Login Name'= Substring(upper(SUSER_SNAME(SID)),1,40), 'Login Create Date'=Convert(Varchar(24),CreateDate), 'System Admin' = Case SysAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Security Admin' = Case SecurityAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Server Admin' = Case ServerAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Setup Admin' = Case SetupAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Process Admin' = Case ProcessAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Disk Admin' = Case DiskAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Database Creator' = Case DBCreator When 1 then 'YES (VERIFY)' When 0 then 'NO' End from Master.Sys.SysLogins order by 3 desc Go ]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>

Ahora tienes un fragmento llamado SecuritySPY. Se puede invocar con la tecla de acceso directo desde el editor de consultas, como se explicó anteriormente. También puede con el botón derecho en el menú contextual en el editor de consultas y seleccione Insertar fragmento.

Creación y uso de fragmentos pueden simplificar las tareas de administración de SQL Server. Tener un puñado de comandos predefinidos a su disposición le impide tener que hacer lo mismo una y otra vez.

Greg Steen

Saleem Hakani es un arquitecto principal de Microsoft con más de 18 años de experiencia. Ha trabajado con SQL Server desde 1992 y ha trabajado en numerosos servicios de Microsoft a gran escala como ingeniero y arquitecto en los últimos siete años, incluyendo Hotmail, Bing y MSN. Hakani conduce a la comunidad mundial de SQL Server para los empleados de Microsoft y es una presentadora de técnica para varios eventos de Microsoft, incluyendo TechReady, SQLFEST, escuela de SQL y SQLPASS.

Contenido relacionado