none
Buenas prácticas SQL Server RRS feed

  • Debate general

  • Hola amigos. Soy nueva en SQL Server 2016. Estoy viendo muchos videos y estoy aprendiendo mucho pero observo discrepancias entre ellos que me crean algunas dudas:

    -¿El código debe escribirse en mayúsculas o minúsculas?

    -¿Una sentencia puede dividirse en más de una línea?

    -¿Debe escribirse el código con mayúsculas o minúsculas?
    -sp_helptext ¿sólo sirve para las vistas?
    -¿los campos de tipo varchar no admiten acentos?

    -¿Puedo pegar en este canal código de ejemplo para recibir apoyo?

    Muchas gracias de antemano

    Un saludo


    Carmen

    martes, 30 de agosto de 2016 9:44

Todas las respuestas

  • Buen dia Carmen,

    ¿El código debe escribirse en mayúsculas o minúsculas?

    Cuando instalas elegís la colletion para case insensitive

    ¿Una sentencia puede dividirse en más de una línea?

    Una query la podes programar en varias líneas, ejemplo

    Select..

    From..

    Where..

    ¿Debe escribirse el código con mayúsculas o minúsculas?

    Indistinto

    sp_helptext sirve para todos los objetos de una base de datos

    ¿los campos de tipo varchar no admiten acentos?

    Admiten acentos

    Te paso este video en el cual vas aprender usar T-SQL

    https://www.youtube.com/watch?v=eZ4BE1ybVh4



    Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.

    martes, 30 de agosto de 2016 11:24
  • Hola Carmen,

    La verdad es que no hago uso de ninguna nomenclatura especial cuando escribo código SQL.

    Yo personalmente trato de escribir los comandos en mayusculas y hago salto de linea después de cada INNER JOIN 

    EJ:

    SELECT nombre FROM persona INNER JOIN 
                 pais ON pais.id = persona.id
    WHERE  
                 pais.nombre = 'ESPAÑA'


    los campos varchar si admiten acentos debes configurar la intercalación de la base de datos como SQL_Latin1_General_CP1_CI_AS.

    En este link encontraras una pequeña guia de buenas practicas: http://www.sql-server-performance.com/2001/sql-best-practices/

    Este es el sitio idóneo para poner tu código y solventar dudas.

    Saludos,


    martes, 30 de agosto de 2016 11:39
  • Hola.

    Adicional a lo anterior, documentar siempre es buena idea, en cuanto a qué hace la sentencia T-SQL, sobre todo cuando son complejas.

    Para lo que valga, Apex tiene una herramienta gratuita muy buena, en mi opinión, que ayuda con muchas de estas inquietudes: ApexSQL Complete.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog


    • Editado guillermotaylorMVP martes, 30 de agosto de 2016 12:57 Se agregó el link relacionado
    martes, 30 de agosto de 2016 12:55
  • Saludos

    -¿El código debe escribirse en mayúsculas o minúsculas?

    Normalmenete esto es mas por normativa y mejores practicas de tu lugar de trabajo, alguien menciono el collation de la base y he llegado a sitios donde mis scripts fallan por esa razón pero son casos especiales en general, muchos odian o aman los estilos es un poco difícil darte una respuesta pues es tema debatido.

    -¿Una sentencia puede dividirse en más de una línea?

    Claro de hecho normalmente es recomendado que se algo asi

    Select

    campos

    from

    where

    para su facil lectura

    -¿Debe escribirse el código con mayúsculas o minúsculas?

    Depende de los lineamientos que tengas o quieras imponer, lo importante es seguirlos.

    -sp_helptext ¿sólo sirve para las vistas?

    Sire para varios objetos como sp o triggers

    -¿los campos de tipo varchar no admiten acentos?

    -Para nombres con caracteres especiales es recomendado que uses nvarchar

    -¿Puedo pegar en este canal código de ejemplo para recibir apoyo?

    -Si aunque considera que pegas pues pueden incurrir en problemas de seguridad hazlo pero verifica no traer información sensible

    martes, 30 de agosto de 2016 15:48
  • Hola, por experiencia y consejos que he podido aprender a partir de autores con mucha valia dentro del mundo de T-SQL.  Me gustaría aportar mis sugerencias sobre las diferentes preguntas:

    ¿El código debe escribirse en mayúsculas o minúsculas?  

    R: Se recomienda que las palabras reservadas se escriban en MAYUSCULAS, por ejemplo: DELETE, UPDATE, INSERT, TRUNCATE, etc.

    -¿Una sentencia puede dividirse en más de una línea?

    R: Perfectamente, tienes el caso de las Common Table Expressions.

    -sp_helptext ¿sólo sirve para las vistas? 

    R: No, este SP permite obtener la definición para diferentes tipos de objetos.  Aqui un link oficial: https://msdn.microsoft.com/es-es/library/ms176112.aspx?f=255&MSPPError=-2147217396

    ¿los campos de tipo varchar no admiten acentos?

    R: Sí, dependera de la configuración de intercalación.

    -¿Puedo pegar en este canal código de ejemplo para recibir apoyo?

    R: Claro, esa es la idea de este tipo de foros, asi que postea el codigo requerido y nosotros te apoyaremos.  Aprovecho para comentarte sobre la herramienta de la empresa RedGate llamada SQL Prompt:

    https://www.red-gate.com/products/sql-development/sql-prompt/

    Saludos.


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    martes, 30 de agosto de 2016 20:10
  • Solo en Visual Foxpro he visto normas de codificación bien estructuradas, el no seguirlas no implica que no funcione el código, pero otro que vea tu trabajo en el futuro se reirá de la chapuza que dejes.. si bueno aquí te lo dejo solo para ejemplo.

    http://codigoadicto.com/normas-de-codificacion-en-visual-foxpro

    martes, 30 de agosto de 2016 23:07
  • Hola Carmen

    Adicionalmente a todas las recomendaciones que le han hecho antes, considere revisar los siguientes documentos:

    Raiz de la documentación oficial de SQL Server

    https://msdn.microsoft.com/es-co/library/mt590198(v=sql.1).aspx

    Tecnologías de SQL Server

    https://msdn.microsoft.com/es-co/library/ms130214(v=sql.130).aspx

    Motor de base de datos

    https://msdn.microsoft.com/es-co/library/ms187875.aspx

    Referencia de T-Sql

    https://msdn.microsoft.com/es-co/library/bb510741.aspx


    PDF fundamentos de SQL Server:

    http://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

    Saludos,


    Miguel Torres


    miércoles, 31 de agosto de 2016 0:17
  • Nenufar,

    No confundir convenciones con buenas prácticas. Respecto a lo primero, si bien existen convenciones (para identificadores, tipos, funciones, etc.) no son una regla a tomar, ayuda de cierta manera a la legibilidad del código y a la estandarizacion pero la idea de una convención o nomenclatura es que el equipo la acepte y lo siga, por ejemplo, si tu equipo de desarrolladores considera que los tipos de datos se deben de escribir en mayúsculas y no en minúsculas -como se acostumbra- pues es una decisión interna, algún sustento válido debe de haber para que se llegue a un consenso.

    {?}- ¿los campos de tipo varchar no admiten acentos?

    ¿Por qué no? El tema de la intercalación tiene que ver con la distinción entre palabras con tilde o sin ella, no tiene que ver con la restricción.



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 31 de agosto de 2016 2:27
  • {?}- ¿los campos de tipo varchar no admiten acentos?

    ¿Por qué no? El tema de la intercalación tiene que ver con la distinción entre palabras con tilde o sin ella, no tiene que ver con la restricción.



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    Correcto, fallo mio, he tenido algunos problemas con las intercalaciones de bases de datos y ahora el concepto lo tengo marcado a fuego :) no hay base de datos donde no la revise.

    miércoles, 31 de agosto de 2016 6:13
  • Muchas gracias. ¿Cómo configuro la base de datos?

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:39
  • Hola. Con documentar ¿te refieres a añadir comentarios al código? Gracias de antemano

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:42
  • Gracias. ¿Qué es el collation y dónde y cómo tengo que activarlo?

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:45
  • Muchas gracias.

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:48
  • Hola. ¿Qué tipo de relación tiene Visual Foxpro con SQL Server? Gracias de antemano

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:49
  • Hola. Muchísimas gracias por toda la información.

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:53
  • Hola. Pregunto lo de las palabras acentuadas en los campos de tipo varchar porque he observado en los ejemplos que encuentro cuando hay cadenas de texto veo que no hay mayúsculas ni acentos, debe ser por comodidad. Gracias

    Un saludo


    Carmen

    miércoles, 31 de agosto de 2016 9:55
  • Hola Carmen

    Normalmente en los buscadores, uno de los requisitos frecuentes es que no se distingan las palabras que están diferenciadas solamente por el acento. 

    Por ejemplo, cuando se busca "Pérez", también se requerirá "Perez".

    El tema aquí es la intercalación (collation) y se puede utilizar cualquiera de las intercalaciones que ignoran el acento, como las terminadas en "_IA" (por sus términos en ingles: Insensitive Accent).

    Le recomiendo esta lectura sobre compatibilidad con la intercalacion y unicode

    https://msdn.microsoft.com/es-es/library/ms143726.aspx

    Note que el documento sugerido, cuenta con enlaces adicionales para cambiar la intercalación a nivel de servidor, base de datos o columnas de tablas.

    Por otro lado, algunos desarrolladores prefieren crear funciones para ignorar los acentos, bien sea a nivel de instrucciones T-SQL o código desde el Framework (VB.NET, C#, etc).

    Saludos,


    Miguel Torres





    miércoles, 31 de agosto de 2016 17:11