SQL Server: Como restaurar una BD de SQL Server 2008 R2 en versiones previas de SQL Server!

Pues esto es lo que me tocó averiguar el otro día cuando al intentar restaurar un backup realizado en SQL Server 2008 R2 en un SQL Server 2008 me encontré con el siguiente error tan bonito:

  • “…bla bla…The database was backed up on a server running version 10.50.1617. That version is incompatible with this server, which is running version 10.00.5500…bla bla …”….tras acordarme de la familia de quien hizo el backup me puse manos a la obra para buscar una alternativa a instalar SQL Server 2008 R2 que me permitiese poder disponer de una réplica de la BD en mi SQL Server 2008.
  • La alternativa pasa por crear un script del esquema y de los datos de la BD usando para ello las capacidades de SQL Server Management Studio. En concreto a través de las opciones “Tasks –> Generate Scripts” disponible en el menú contextual de la base de datos en cuestión.
  • De esta forma se inicia un asistente para crear dichos scripts.
image image image
  • La siguiente ventana del asistente nos permite seleccionar entre  crear un script de la BD completa o de sólo ciertos objetos de la misma. En mi caso me interesa la BD completa.
  • A continuación se muestra una ventana dónde especificaremos la ruta dónde guardar el script a generar y dónde a través del botón “Advanced” podremos configurar las propiedades adecuadas para generar un script compatible con SQL Server 2008.
  • En la propiedad “Script for Server Version” podemos elegir entre SQL Server 2000, 205, 2008 o 2008 R2. En mi caso he escogido SQL Server 2008. En la propiedad “Type of data to script” podemos elegir una de las siguientes opciones: “Data only”, “Schema Only” o “Schema and data”. En mi caso he escogido la última opción.
image image image
  • Dependiendo de la BD el script generado será más o menos grande lo qué puede ser un problema y dar lugar a errores en su generación en caso de qué su tamaño sea muy grande. En mi caso, el script generado tiene nada menos que 102 MB de tamaño.
  • Una vez generado el script, toca la prueba del algodón: ejecutarlo en una instancia de SQL Server 2008…antes de ejecutarlo aviso a navegantes, revisar que los path de creación de los archivos de la BD estén bien ya que el script tardará bastante en ejecutarse si es pesado y si falla, os podéis encontrar con problemas de out of memory (lo sufrí en mis carnes en mis pruebas…no comments).
  • Interesante también la cantidad de memoria que consume la ejecución de este script infernal.
image image image
  • Tras unos minutos de tensa espera rezando porque el script se ejecute sin problemas y se cree la BD, llegamos aparentemente a un final feliz.

image

Fuente: http://social.msdn.microsoft.com/Forums/en-IE/sqlsetupandupgrade/thread/7eabf4fe-fa69-440b-9327-13cd19630735

SQL Server 2008: Disponible para descarga el SP2!

Si antes lo comento, antes sale…y es que esta mañana durante un seminario de SQL Server 2008 R2 me comentaban que estaba al caer el Service Pack 2 (SP2) de SQL Server 2008, y vaya que si tenía razón porque desde ya tenemos disponible para descarga este SP2. Podéis leer el anuncio en este post del equipo de SQL Server. ¿Y qué novedades nos trae el SP2? Pues varias bastante interesantes:

  • La integración de SQL Server Reporting Services (SSRS) con SharePoint 2010.
  • La posibilidad de administrar instancias de SQL Server 2008 con las nuevas herramientas de administración y monitorización que vienen con SQL Server 2008 R2. En particular, la definición de Utility Control Points en el que enrolar instancias de SQL Server 2008.
  • Soporte de aplicaciones de capa de datos en SQL Server 2008.

image

SQL Server 2008: Versiones disponibles!

Con la llegada de la RTM de SQL Server 2008 R2, que tendremos disponible en breve en MSDN y TechNet, es importante tener a mano las distintas versiones de SQL Server que tenemos hasta la fecha sobre todo en lo que a actualizaciones se refiere. Por ejemplo, esto es importante para instalar SharePoint 2010 sobre SQL Server 2005 / 2008 ya que:

  • En el caso de instalarlo sobre SQL Server 2005, necesitaremos tener instalado el Service Pack (SP) 3.
  • En el caso de instalarlo sobre SQL Server 2008, necesitaremos tener instalado el SP1 y al menos la Cumulative Update (CU) 2.

Como siempre, no viene mal tener a mano una buena referencia de las actualizaciones disponibles hasta la fecha. Esta referencia la podemos encontrar en este artículo de la página del equipo de SQL.

SQL Server 2008: Bases de datos de ejemplo!

Para los que trabajamos preparando demostraciones o formaciones en torno a tecnologías y plataformas Microsoft es muy importante contar con datos de ejemplo que nos podamos utilizar para crear EDMs de Entity Framework que podamos atacar con LINQ To Entities o consumir con ADO.NET Data Services, que nos permitan construir rápidamente informes de SQL Server Reporting Services, etc. Me estoy refiriendo lógicamente a disponer de bases de datos (BD’s) de ejemplo. Por suerte, esta necesidad la tenemos resuelta gracias a que, como para otras versiones de SQL, Microsoft ha puesto en Codeplex a nuestra disposición una serie de bases de datos de ejemplo (en este caso para la famosa AdventureWorks) listas para descargar y usar. Nos podremos descargar las BD’s en varios formatos:

  • En formato .msi tanto para 32, como para 64 bits e IA64. En mi caso me he bajado e instalado el .msi para 64 bits y como pasos previos para que la instalación no falle, es necesario que en vuestro SQL Server 2008 tengáis configurada la característica FILESTREAM de SQL Server 2008 y que esté instalado el componente de SQL Full-Text Search.
  • En formato zip.
  • La BD AdventureWorksLT en formato zip.

image 

Por supuesto, si necesitáis la versión de estas BD’s para SQL Server 2005, las tenéis disponibles en este enlace.

SSRS 2008: Como añadir tus propias plantillas de informe!

Como sabéis, SQL Server Reporting Services (SSRS) cuenta con dos plantillas pre-definidas para crear informes. Una de ellas nos permite crear el informe desde cero (plantilla de tipo Report Item) y la otra a través de un asistente (plantilla de tipo Report Wizard):

image

Pero, ¿Podemos añadir nuestras propias plantillas de informe? Por supuesto, lo único que tenemos que hacer en el BI Management Studio es:

  • Crear la plantilla de informe base que en sí es un informe, pero que contiene los elementos que hemos identificado como comunes para los informes de nuestra organización.
  • Copiamos el archivo RDL en la siguiente ruta (para SSRS 2008):

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject

  • Probamos a añadir un nuevo ítem al proyecto de SSRS y veremos como aparece la plantilla que acabamos de crear lista para usar como base para nuestros nuevos informes.
image image image
  image  

Si lo que queremos es añadir una plantilla de informe para el asistente de creación de informes, tenemos que modificar el archivo StyleTemplates.xml ubicado en el path siguiente (para SSRS 2008):

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\Business Intelligence Wizards\Reports\Styles

Y hasta aquí llega este post sobre como añadir nuestras propias plantillas de informes en SSRS 2008. Espero que el post os haya resultado interesante.

MSDN Community CD – Distribución de junio…será por recursos!

Pues eso, a través del blog de Greg Duncan he descubierto otra fuente más de recursos de formación en tecnología Microsoft que no conocía. Se trata del MSDN Community CD, que en está ocasión está enfocado a Visual Studio 2010, .NET Framework 4.0, ASP.NET AJAX, SQL Server 2008 para desarrolladores, SQL Server Integration Services 2008 y Windows 7:

Introduction to .NET 4.0

This course provides an overview of new features include the Managed Extension Framework (MEF), theading, and design by contract. Also includes a discussion of the various types of managed languages including the object-oriented languages (C#, C++, VB), the new Dynamic Languages (Iron Python and Iron Ruby), and the Functional Language F#.

New Features in Visual Studio 2010

This course demonstrates some of the new features in the Visual Studio IDE, including the new start page, the code editor, the XML schema editor, and new tools for web development and deployment

ASP.NET AJAX 4.0

This course provides an introduction to ASP.NET AJAX 4.0, focusing on the new client-side controls and templating capabilities, including the dataview control

SQL Server 2008 Developer Fundamentals Part 1

This Web seminar will give an introduction of how to use T-SQL with SQL Server 2008. It will start with covering the basics and then move on to high-lighting some of the new syntax introduced with SQL Server 2008.

Developers look at Windows 7

This is a high-level overview of what’s new in the Windows 7 user interface. New features including the new Taskbar, Ribbon, Jump Lists, and Multitouch are demonstrated, so that developers know the new functionality they can leverage, but no code is shown.

Introduction to SQL Server Integration Services 2008 (SSIS)

This course will cover how to use SQL Server Integration Services 2008 (SSIS) to manage an Extract, Transform, and Load (ETL) process. We will start by looking at the fundamental components that make up SSIS and then move onto designing packages using Business Intelligence Development Studio

…”

image

Fuente: Blog de Greg Duncan.

SQL Server 2008: Como habilitar drilldown en un gráfico de SSRS 2008!

Como sabéis, una de las principales novedades de SQL Server Reporting Services 2008 (SSRS 2008) es la nueva paleta de controles gráficos que trae de serie. Estos controles están basados en los de DUNDAS (Microsoft compró hace más de un año el código fuente de estos controles a DUNDAS) y son más espectaculares que los que hasta ahora teníamos en SSRS.

Una de las cosas que podemos hacer con estos gráficos en SSRS 2008 es habilitar el drilldown de manera que podamos dotar de bastante interactividad a los mismos. Para habilitar activar el drilldown en un gráfico de SSRS 2008:

  • Hacemos clic en el área del gráfico con el botón derecho del rato y marcamos la opción Series Properties.
  • En la ventana que se abre, nos vamos a la sección Action y marcamos Go To Report. De esta forma, se habilita un combo con los informes que contiene nuestra solución y a los que podemos navegar al hacer clic sobre una de las series del gráfico.
  • Elegimos uno de estos informes, y además configuramos el parámetro que espera recibir el informe destino a partir de un campo de información en el informe origen.
  • Hacemos un preview del informe y veremos que podemos hacer clic sobre cualquiera de las series del gráfico.
image image image

  • Tras hacer clic, llegaremos al informe destino pasándole el parámetro correspondiente (en este caso la categoría de producto).

image

Y hasta aquí llega este rápido tip sobre gráficos en SSRS 2008.

SQL Server 2008: Tips, Tricks & How-To en SSRS 2008 (III)!

Siguiendo con la serie de posts sobre tips, tricks & how-to de SQL Server Reporting Services 2008 (SSR 2008), cuyo último capítulo puedes encontrar en este enlace, en esta ocasión os voy a presentar más aspectos a tener en cuenta a la hora de buscar funcionalidades más que requeridas en nuestros informes de SSRS 2008. Empecemos.

Cómo añadir cabeceras flotantes a un informe

Para lograr que nuestras cabeceras permanezcan visibles en nuestro informe aunque hagamos un scroll (similar a la opción de fijar paneles de Microsoft Excel), el nuevo diseñador de SSRS 2008 “parece” que nos sugiere realizar lo siguiente:

  • seleccionamos la tabla que contiene nuestro informe, botón derecho y pulsamos Tablix Properties.
  • En la pestaña general no tenemos más que marcar la opción Header should remain visible while scrolling.
  • En teoría, sería probar el informe y comprobar que las cabeceras permanecen visibles al hacer un scroll…pero cuál será vuestra sorpresa (como lo fue en mi caso) que esto no será así.
image  image

Tras indagar un poco en la red, rápidamente llegaremos a soluciones que nos harán ver la luz como la que se indica en este enlace y en está página de MSDN. Básicamente lo que tenemos que hacer para lograr el efecto de cabeceras flotantes es:

  • En el diseñador de informes de VS 2008 o de Report Builder 2.0, nos vamos a las nuevas secciones de agrupamiento y desplegamos la pestaña que aparece para seleccionar Advanced Mode.
  • De esta forma aparecen los miembros estáticos de nuestra región de datos.
  • Seleccionamos el primero de estos miembros estáticos que se corresponde con nuestras cabeceras y a través de la ventana de propiedades especificamos que la propiedad FixedData tenga el valor True de manera que las cabeceras estará siempre visibles. Además, si especificamos la propiedad RepeatOnNewPage a True, conseguiremos que las cabeceras aparezcan en cada nueva página que tenga el informe.

image

image

image

  • Sin más, comprobamos que las cabeceras flotantes están operativas…pero también que no se muestran en páginas sucesivas del informe….luego nuestra solución se queda a medias, y de momento no he encontrado como solucionar este inconveniente (en cuanto dé con la solución os lo cuento).

 

image image

Añadir saltos de página al informe

Al igual que ocurría con SSRS 2005, en SSRS 2008 podemos añadir saltos de página. Por ejemplo, vamos a añadir un salto de página por cada tipo de producto: nos vamos a la sección Row Groups, seleccionamos Group2 (nivel de agrupamiento de acuerdo a Cagegory) y a continuación Group Properties. En la ventana que se abre marcamos la opción Between each instance of a group en la sección Page Breaks.

image image

 

Habilitar un mapa de informe

Finalmente, para concluir la tercera entrega de trucos sobre la cración de informes con SSRS 2008 os voy a comentar como añadir un mapa de informe para facilitar la navegación por el mismo. En este caso, la configuración la he hecho en Report Builder 2.0, con Visual Studio es exactamente lo mismo:

  • Seleccionamos en primer lugar una de las agrupaciones de nuestro informe sobre la que basar la creación del mapa del informe.
  • Hacemos click con el botón derecho del ratón y seleccionamos la opción Group Properties.
  • En la ventana que se abre nos vamos a la sección Advanced y en Document Mapa simplemente elegimos que campo de nuestro informe vamos a usar para el mapa del informe.
  • Sin más, probamos que el mapa queda como queremos.
image image image

Y hasta aquí llega esta tercera entrega sobre trucos para la creación de informes con SSRS 2008. Espero que el post os haya resultado interesante.

SQL Server 2008: Disponible el Developer Training Kit!

Desde hace unos días tenemos disponible para descarga el SQL Server 2008 Developer Training Kit. Este Kit está pensado para facilitar una mayor comprensión de como utilizar los nuevos tipos de datos, paradigmas de programación y modelos que forman parte de SQL Server 2008:

  • Presentaciones:
    • Filestream
    • Spatial
    • T-SQL
    • Date and Time Types
    • SQLCLR
    • Reporting Services
  • Demos:
    • AdventureWorks Racing All-Up SQL Server 2008 Demo
    • SQL Server 2008 All-Up Spatial Demo
    • Spatial Types Demo
    • Intro to Filestream Demo
    • SQL CLR Nullable Types Demo
    • Programming with Filestream Demo
    • Reporting Services Web Application Integration Demo
    • Date and Time Support in SQL Server 2008 Demo
    • T-SQL Table-Valued Parameters Demo
    • T-SQL Row Constructors Demo
    • T-SQL Grouping Sets Demo
    • T-SQL Merge Demo
  • Hands-on Labs:
    • Using Spatial Data in TSQL
    • Using Spatial Data in Managed Code
    • Using SQL CLR in SQL Server 2008

SSRS 2008: Construyendo un informe a partir de un EDM de ADO.NET Entity Framework!

Siempre me digo que responder de forma tajante una pregunta que te hacen en torno a tecnologías es la opción cuando estás seguro de la respuesta, pero cuando no lo estás al 100 % lo mejor es responder que no sabes la respuesta. Precisamente esto es lo que me ha pasado en el último curso sobre SQL Server Reporting Services 2008 (SSRS 2008) que he impartido. La pregunta en este caso fue la siguiente: ¿Se pude crear un informe a partir de un Entity Data Model (EDM) de ADO.NET Entity Framework? Tras no pensarlo mucho, contesté que en el Report Designer de Visual Studio o en el Report Builder no porque espera una fuente relacional, un modelo de datos, datos XML, pero no un modelo de entidades de negocio como el que tenemos con EF o LINQ To SQL…la pregunta tenía toda su lógica ya que cuando diseñamos un informe en SSRS 2008 partimos de un dataset. El caso es que en este caso he de decir que la respuesta que di es cierta a medias puesto que si existe una forma de generar informes a partir de un EDM de EF o un modelo de LINQ To SQL o incluso llamando a un servicio de ADO.NET Data Services…la respuesta está en el control Report Viewer que tenemos en Visual Studio y que admite tanto informes locales como de servidor. Pero vamos al grano:

  • Lo primero es lógicamente crear un EDM de EF utilizando para ello el asistente que tenemos en Visual Studio 2008 SP1.
image image image
  • Una vez creado el EDM, compilamos el proyecto.
  • Añadimos un elemento al proyecto de tipo Reporting –> Report al proyecto…y es aquí dónde está la clave: puedo diseñar informes en modo local para ser consumidos por el control report viewer.
image image image
  • Se abre la superficie de diseño de SSRS (cuidado, que no es la de SSRS 2008 :-(, es nuestro viejo SSRS 2005…lo que no deja de ser curioso, pues estoy trabajando con un proyecto de .NET Framework 3.5 y tengo instalada toda la infraestructura de SSRS 2008). A través de la ventana Data Sources podemos especificar la fuente de datos para el informe haciendo clic sobre Add New Data Source…
  • En la ventana que sea abre elegimos una fuente de tipo Object…Ajá, aquí lo tenemos, en el momento en el que yo puedo especificar una fuente de datos tipo Object, ya hablo la posibilidad de crear informes a partir de mi EDM, de un modelo de LINQ To SQL o incluso a partir de un servicio de ADO.NET Data Services.
  • Esto nos permite elegir que objetos de negocio del proyecto actual queremos utilizar para crear el informe. Elegimos nuestro modelo de EF.
image image image
  • De esta forma, ya tenemos las entidades de nuestro modelo de EF listas para empezar a construir nuestro informe.
  • Añadimos una región de datos de SSRS a la superficie de diseño (en mi caso una tabla).
  • No tenemos más que arrastrar campos de las entidades de negocio a las zonas de datos del informe. En mi caso, he añadido dos campos de una de las entidades por simplicidad.
  • Guardamos el informe y añadimos un control de tipo Report Viewer a nuestro formulario Windows Form o Web.
image image image

  • Lo siguiente que tenemos que hacer es configurar el control Report Viewer vía código para que por una parte utilice el informe que hemos diseñado y por otra vincule de forma adecuada las entidades del modelo de EF con dicho informe.

            AdventureWorksEntities ctx =

                new AdventureWorksEntities();

            var dataSource = ctx.Product; 

            this.reportViewer1.ProcessingMode=

                Microsoft.Reporting.WinForms.ProcessingMode.Local;

            this.reportViewer1.LocalReport.ReportPath=

                System.Environment.CurrentDirectory +

                 @"\Product.rdlc";

            this.reportViewer1.LocalReport.DataSources.Clear();

            this.reportViewer1.LocalReport.DataSources.Add(

                new Microsoft.Reporting.WinForms.ReportDataSource(

                    "SSRS_LINQ_Product", dataSource));

            this.reportViewer1.RefreshReport();

  • Fijaros que para poder utilizar entidades del modelo de EF, lo único que hago es crear una instancia del objeto contexto de datos. Definir mi fuente de datos en base a una de las entidades del modelo, y a continuación configurar de forma adecuada el control reportviewer:
    • Fijamos el modo de procesamiento a local.
    • Especificamos el informe que vamos a visualizar en el control (el que hemos diseñado anteriormente).
    • Añadimos la fuente de datos al report viewer y lo reflescamos.
  • Tras compilar la aplicación, no tenemos más que probar que funciona…cool!!
  image  

Y hasta aquí llega este post…lo bien que se queda uno cuando encuentra la respuesta que contradice la afirmación realizada inicialmente. Espero que el post os haya resultado de utilidad.