Training Kit R2 listo en la web

Posted by Miguel Egea | Posted in Analisys Services, Noticias, Relacional | Posted on 14-06-2010

0

Algunos de mis compañeros en Solid han trabajado duro en esto, pero ya está listo para descarga en: http://go.microsoft.com/?linkid=9710868

esto lo dejo en inglés porque el video estará en inglés :)

Or if you just want to see what’s in it, you can preview training kit content online in the SQL Server 2008 R2 Learning Center on Channel 9 at http://channel9.msdn.com/learn/courses/SQL2008R2TrainingKit

Buscador sencillo en c#

Posted by Miguel Egea | Posted in C#, Relacional | Posted on 19-04-2010

0

En un post del grupo de noticias un compañero tenía una duda sobre como crear buscadores, de forma que la consulta SQL no fuese muy compleja de tratar y escribir, a la vez que no tenga problemas de inyección de código y que cumpla con sus requisitos. Yo me he permitido escribir el código todo en C#, aunque me hubiese gustado escribir un procedimiento almacenado, creo que de forma didactica esto va a quedar más claro.

Desde aquí puedes bajarte la aplicacion en zip.

Espero que disfruteis el  post.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace Demo_Buscador
{
    public partial class Form1 : Form
    {
        SqlConnection con = new SqlConnection( ConfigurationManager.ConnectionStrings["AdventureWorks2008"].ConnectionString.ToString() ) ;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            DataTable dt=new DataTable();
            SqlDataAdapter da = new SqlDataAdapter("select DISTINCT PERSON.PersonType From Person.Person",con);
            da.Fill(dt);
            TipoPersona.DataSource = dt;
            TipoPersona.DisplayMember = "PersonType";

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string SQL = "SELECT * FROM Person.Person  ";
            string where="";
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = new SqlCommand();
            da.SelectCommand.Connection = con;
            if (TipoPersona.Text != null && TipoPersona.Text!="")
            {
                TipoPersona.Text += "   ";
                da.SelectCommand.Parameters.Add("@PersonType",SqlDbType.NChar,2).Value=TipoPersona.Text.Substring(0,2);

                where += " PersonType=@PersonType AND ";

            }
            if (Nombre.Text != "")
            {
                da.SelectCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = Nombre.Text;
                where += " LastName like @name  AND ";

            }

            if (where != "")
                SQL += " WHERE " + where.Substring(0, where.Length - 4);

            da.SelectCommand.CommandText = SQL;

            DataTable DT=new DataTable();
            da.Fill(DT);

            dataGridView1.DataSource = DT;

        }
    }
}

Pruebas unitarias en proyectos multidimensionales

Posted by Miguel Egea | Posted in Analisys Services, Noticias, Relacional | Posted on 13-04-2010

1

Mi compañero en SolidQ Italia, Davide Mauri ha desarrollado un proyecto que me parece muy positivo.  Este es el mensaje que ha puesto Davide.

Y aquí puedes llegar al proyecto

A project that allow the execution of Unit Testing against a database (Relational or Multidimensional).
It uses NUnit (http://www.nunit.org/) )as unit-testing framework and does not require DBA or BI Developer to know anything about .NET: just write your SQL or MDX queries and test them. QueryUnit will take care of automatically create the assembly that will test your query for you, using NVelocity (http://nvelocity.codeplex.com/) to generate .NET classes and the CodeDom engine to compile them at runtime.

Un curso gratuito sobre SQL Server Azure

Posted by Miguel Egea | Posted in Noticias, Relacional | Posted on 03-04-2010

1

Para hacer el curso puedes pulsar aquí.  

Esto es lo que trata.

This two-hour clinic explores the capabilities of Introduction to Microsoft SQL Azure.

This clinic covers the following topics:

  • Understanding the SQL Azure Platform
  • Designing Applications for SQL Azure
  • Migrating Applications to SQL Azure
  • Achieving Scale with SQL Azure

Users completing this collection should have a basic understanding of SQL Server and relational database systems.

Objetivos
Al finalizar el curso, los alumnos serán capaces de:
  • Understand SQL Server Development
  • Understand relational database concepts
Requisitos del sistema
 
Para ver este curso, necesita:
  • Pentium II, RAM de 256 MB con una velocidad de procesamiento de 400 MHZ o más.
  • Microsoft® Windows® 2000 o posterior.
  • Microsoft Internet Explorer 6.0 con SP1.
  • Macromedia Flash 7.0 o posterior (se necesita 1 MB de espacio en disco para la instalación).
  • Microsoft Virtual Server ActiveX control (necesario para los laboratorios virtuales; se necesita 1 MB de espacio en disco para la instalación).
  • Microsoft Windows Media Player 7.0 o posterior.
  • Microsoft XML Core Services 3.0 o posterior.
  • Un monitor Super VGA con resolución mínima de 1024 x 768, con colores a 16 bits.
  • Se recomiendan una tarjeta de sonido, parlantes o auriculares.
  • Un ancho de banda de Internet de 56K o superior. Se recomienda banda ancha.
Para los cursos que incluyan prácticas basadas en Virtual Server (cursos en el catálogo para el programador y el profesional de tecnología de la información), necesitará:
  • Control ActiveX de Microsoft Virtual Server (se requiere 1MB de espacio en disco para la instalación)

Pruebe las capacidades de su equipo para ver si podrá ejecutar este curso.

Requisitos de accesibilidad
 
El software siguiente tiene que estar en ejecución en su equipo para poder obtener acceso a este curso con el software lector de pantalla:
  • Microsoft Internet Explorer 5.0 o posterior
  • Window-Eyes de GW Micro
  • JAWS de Freedom Scientific
  • Habilitado para MSAA
Módulos y lecciones
Clinic Overview
Module Overview
Clinic Overview
Navigation Overview
Clinic Information
Introduction to Microsoft SQL Azure
Module Overview
Understanding the SQL Azure Platform
Introduction
Windows Azure Platform
Extending the SQL Data Platform to the Cloud
What SQL Azure Is
What SQL Azure Is Not
When to Use SQL Azure vs Azure Tables
SQL Azure Provisioning Model
Provisioning a SQL Azure Account and Connecting to SQL Azure
SQL Azure Architecture
Creating a SQL Azure Database
High Availability and Recovery
Self Test
Designing Applications for SQL Azure
Introduction
Logical vs Physical Administration
Creating Objects in SQL Azure
Compatibility Goals
T-SQL
T-SQL Support
SQL Azure Security Model
Managing Logins and Security
Connection Model
Managing Connections in SQL Azure Applications
Managing Connections in a SQL Azure Application
Self Test
Migrating Applications to SQL Azure
Introduction
Migrating Database Schemas to SQL Azure
Migrating Database Schema to SQL Azure
Migrating Application Data to SQL Azure
SQL Server Integration Services
Working with BCP
Migrating Application Data to SQL Azure Using SSIS
Choosing an Appropriate Local Caching Strategy
Using Local Caching with SQL Azure Data Sync
PHP Support for SQL Azure
Self Test
Achieving Scale with SQL Azure
Introduction
Why Scale Out?
Database Size
Performance Considerations
Accessing Usage Data from System Views
Scale out Considerations
Throttling Considerations
Sharding Basics
Example Sharded Database Model
Working with a Sharded Database
Self Test
Module Summary
Module Summary
Glossary
Glossary
Para realizar una evaluación, conéctese a su cuenta Passport Network.
Puntaje más reciente: Ingresar  
Seleccionó la opción de realizar una evaluación. Recibirá distintas preguntas para la evaluación. Respóndalas lo mejor que pueda.

  • Podrá revisar sus respuestas en cualquier momento, antes de finalizar la evaluación, al hacer clic en Revisar
  • Podrá finalizar la evaluación en cualquier momento al hacer clic en Finalizar. En ese momento, cualquier pregunta sin responder será considerada como incorrecta.
  • Haga clic en Ayuda en cualquier momento para obtener información acerca de la utilización de las evaluaciones.

Publicado Curso gratuito sobre Microsoft SQL Server R2 Master Data Services

Posted by Miguel Egea | Posted in Noticias, Relacional | Posted on 26-03-2010

0

Clinic 10331: Introduction to Microsoft SQL Server 2008 R2 Master Data Services

Introducción
This two-hour clinic describes the capabilities of Microsoft SQL Server 2008 Master Data Services.This clinic covers the following topics:Master Data Services concepts, hierarchies, how to plan and implement Master Data Services Projects.

Users completing this collection should have a basic understanding of SQL Server and relational database systems. It is also desirable to have an understanding of dimensions in analytic models.

Objetivos
Al finalizar el curso, los alumnos serán capaces de:
  • Explain the importance of and value provided by master data management and the features provided by Microsoft SQL Server Master Data Services.
  • Explain the core concepts in designing master data management solutions.
  • Describe the process involved in implementing a solution using Microsoft SQL Server Master Data Services

Publicado el centro de Desarrollo SQL en MSDN

Posted by Miguel Egea | Posted in Noticias, Relacional | Posted on 25-03-2010

0

Llevabamos un tiempo trabajando tras de cámaras y hoy por fin está ya publicado.   Mañana os pondré también algunas otras novedades.

De momento  disfrutad con el centro de desarrollo de SQL

SQL Server 2008 R2 White papers (Data Tier Applications)

Posted by Miguel Egea | Posted in Relacional | Posted on 17-03-2010

0

Ya hay algunos publicados, en un perfecto inglés. No es nada nuevo, en nuestra profesión ¿verdad?  En este caso podemos aprender sobre la nueva funcionalidad Data-Tier applications, que es una ayuda a mantener el ciclo de vida de una aplicación de datos, tanto para objetos de bases de datos (procedimientos almacenados, tablas) como de instancia (logins). 

Todo queda muy bien explicado en este libro blanco

Demos de SQL Azure y Storage por Eladio y Amigos

Posted by Miguel Egea | Posted in Noticias, Relacional | Posted on 27-02-2010

1

Mi amigo y compañero de trabajo Eladio Rincón ha creado unos videos de demostración sobre Azure Pulsa aquí para ver la información

Ciclo de WebCast sobre SQL Server 2008 R2 (AKA Kilimanjaro)

Posted by Miguel Egea | Posted in Analisys Services, Noticias, Relacional | Posted on 24-02-2010

0

Creo que un ciclo de conferencias tan interesante y tan elaborado merecen un link mas largo, explicando que encontrar en cada uno de ellos etc.. lo haremos espero con tiempo. De momento, aquí teneis el link
Ciclo de WebCast sobre SQL Server 2008 R2 en castellano

Scripts curiosos, para construir otros scripts

Posted by Miguel Egea | Posted in AntiCursores, Relacional | Posted on 03-02-2010

0

En algunas ocasiones tenemos que lanzar un query repetitivo para un monton de servidores o para un monton de tablas. Yo que soy bastante vago a la hora de hacer tareas repetitivas me he ido creando atajos y truquitos, que no son otra cosa. Os voy a poner un par de ejemplos que habréis de adaptar a vuestras necesidades.

El primero de los ejemplos muestra como ejecutar un script mediante SQL CMD para un conjunto de servidores. Primero suponemos que tenemos una tabla que contiene el nombre de esos servers, también supone que el usuario sa tiene el mismo password en todos, obviamente basta con sustituir sa por otro usuario que tenga permisos.
Si estos usuarios están en una tabla también es facil de adaptar.

use tempdb
go
create schema tuesquema
go
create table tuesquema.TuTablaConNombresDeServidor (server sysname)
go
insert into tuesquema.TuTablaConNombresDeServidor  values ('127.0.0.1'),('10.10.10.10\instancia')
go
select row_number() over (partition by server order by orden),* 
	from(
		select 0 orden,
			':connect '+ server + ' -U sa -P PasswordSA ' query,
				server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select  1 orden,
			'if 0=(select count(*) from master.sys.syslogins where name=''tunuevousuario'')' query,
			server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 2, 
			'begin',server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 3,
			'  create login tunuevousuario with password=''ElPassword'';',
			server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 4,
			'  exec sp_Addsrvrolemember ''tunuevousuario'',''sysadmin'';',
			server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 5,
			' end',
			server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 6, 
				'else',
				server 
		from tuesquema.tutablaconNombresdeservidor 
		union all
		select 7,
			'  exec sp_password ''tunuevousuario'',@new=''ElPassword'';',
			server 
		from tuesquema.tutablaconNombresdeservidor
 ) a where not server is null order by 4,1

El resultado de la ejecución de este script será el que podeis ver a contiunación

Lo que habremos de hacer luego es copiar el resultado query y pegarlo en una nueva ventana de consulta, despues habremos de ir a Query->SQLCMD mode, de esta forma aparecerá la parte de connect en gris, lo que quiere indicar que esa operación se lanzará no como TSQL sino como administración, realmente lo que hará será conectarse al servidor que hemos indicado. En modo SQL CMD hay muchos más comandos, pero no son el objeto de este artículo. El resultado hecho esto es el que podeis ver en la siguiente figura.

El siguiente script servira para ejecutar un select count para cada una de las tablas en nuestro sistema.

select 'SELECT  ''['+Table_schema+'].['+table_name+']'' NombreDeTabla,count(*) FROM  ['  +
		TABLE_SCHEMA +'].[' +TABLE_NAME +'] UNION ALL ' 
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

El resultado de la ejecución de esta consulta será el que veis en la siguiente imagen.

Despues basta con copiar esta query a una nueva ventana, quitar el último union all y añadir una cláusula para la ordenación, en mi caso pondría order by 2 desc, de forma que se ordenaría de tabla con mayor numero de filas a menos. El resultado en AdventureWorks2008 será el que veis en la última imagen del artículo

Por útimo decir que este comando haría algo parecido (que no igual), es un comando indocumentado llamado sp_foreachtable que tiene su gracia

exec SP_MSFOREACHTABLE 'SELECT ''?'', COUNT(*) FROM ?'

Disfrutad del código