Ir al contenido principal

Entradas

ExecuteNonQuery devuelve -1 si se indica SET NOCOUNT ON

Ejecutando un procedimiento almacenado que, a su vez llamaba a un método en un assembly instalado en el CLR de SQL Server, obtenía un error inesperado. El error me decía que una de las instrucciones SQL ejecutadas dentro del assembly estaba fallando. Sin embargo, si omitía el procesamiento del error, me daba cuenta de que la sentencia se había ejecutado correctamente.

Microsoft quiere punto y coma al final de cada sentencia T-SQL

Microsoft publica en la MSDN la " Lista de características desusadas del motor de base de datos de SQL Server 2012 " o, lo que es lo mismo, las deprecated features . Esta lista es útil para mantener nuestra aplicación actualizada , de tal forma que podamos seguir usando las nuevas funcionalidades de las sucesivas versiones SQL Server. Mantener en nuestro código alguna característica marcada como obsoleta o en desuso implicaría que no podríamos ejecutarlo en la versión de SQL que ya no la soportase. Pues bien, en dicha lista aparecen tanto las características que no serán soportadas en la próxima versión de SQL Server como las que estarán en desuso en futuras versiones. Esta segunda lista es muy amplia, pero si leemos detenidamente en ella nos encontraremos con, al menos, una característica que nos llamará la atención : "Not ending Transact-SQL statements with a semicolon." Es decir, Microsoft pretende que deje de ser opcional -como lo es hasta ahora- finaliz...

Script para obtener el tamaño de todas las tablas de la base de datos

En algunas ocasiones podemos vernos con la necesidad de conocer qué tablas de nuestra base de datos están ocupando más espacio en disco. Por ejemplo, si disponemos de SQL Server Express , cuyas bases de datos están limitadas a 4GB o 10GB, según la versión que estemos usando -4, hasta 2005; 10, a partir de 2008-, aparte de usar las opciones de comprimir la base de datos, poner el log en el modo simple de recuperación o ajustar las políticas de crecimiento automático de nuestros ficheros, podemos necesitar averiguar qué tablas crecen más para tomar las decisiones oportunas.

Nuevo modo de autocompletado para IntelliSense en SQL Server Management Studio 2012. ¿Cómo cambiarlo?

Con SQL Server 2008 llegó IntelliSense para T-SQL. IntelliSense es una herramienta que nos ofrece el editor de SQL Server Management Studio para facilitarnos la escritura de código T-SQL. Básicamente, entre otras cosas, carga el catálogo de nuestra base de datos para facilitarnos la escritura de consultas.

Listar todos los ficheros de un servidor SQL Server

E xisten multitud de vistas de sistema en SQL Server que nos ayudan a hacer las tareas de administración y mantenimiento mucho más sencillas. Una de ellas nos permite listar todos los ficheros , tanto de datos como de log, relativos a las bases de datos que tenemos en nuestro servidor. Para ello, usaremos la vista sys.master_files , que nos proporciona información de cada uno de los ficheros de nuestras bases de datos, con todas sus propiedades. Algunas de ellas, incluidas en la consulta de ejemplo, son: nombre del fichero, ruta completa del fichero en disco, tamaño , estado y configuración sobre su crecimiento , del que ya hablamos en posts anteriores . Actualizado el 19 de septiembre de 2013: Ahora el script muestra el tamaño de los ficheros en Megabytes, mientras que, anteriormente, lo hacía en número de páginas de 8KB.

TABLESAMPLE, o cómo obtener una muestra aleatoria de registros de una tabla

¿Alguna vez has necesitado obtener una muestra de datos totalmente aleatoria de tu base de datos? En SQL Server es posible hacerlo, mediante la cláusula TABLESAMPLE , que se aplica a la definición del origen de datos que vamos a recuperar con la cláusula FROM . TABLESAMPLE nos permite indicar un número de filas o un porcentaje de filas a devolver , de la siguiente manera: --devuelve el 10% de las filas totales --(dependiendo del tamaño de los registros en la base de datos, no del número de filas). SELECT * FROM YourTable TABLESAMPLE (10 PERCENT)  --devuelve una muestra de 15 filas del conjunto de resultados SELECT * FROM YourTable TABLESAMPLE (15 ROWS)  Algunas consideraciones a la hora de usar TABLESAMPLE incluyen: No se puede usar en la definición de vistas No se puede usar en la definición de funciones de tabla inline No se puede aplicar a tablas devueltas por funciones tipo tabla

¡Ganador del premio por resolver los puzzles T-SQL!

Pinal Dave ha anunciado a través de twitter el ganador del premio por resolver los dos puzzles SQL que planteaba ahora hace unos días, y de los que nos hicimos eco en este mismo blog . Pues bien, parece que nuestras respuestas eran correctas :) The winner of 2 T-SQL Puzzles and Win USD 50 worth Amazon Gift Card bit.ly/Odx9Wy is @ jaimeml - Congratulations! — Pinal Dave (@pinaldave) octubre 3, 2012 Great! :) RT @ pinaldave : winner of 2 T-SQL Puzzles and Win USD 50 worth Amazon Card bit.ly/Odx9Wy is @ jaimeml - Congratulations! — Jaime Mtnz Lafargue (@jaimeml) octubre 3, 2012