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
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;
}
}
}
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.

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. |
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.
|
|
 |
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
|
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
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
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
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
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