Sep 15 2008

Sql Server Seleccionar registro aleatoriamente

Category: SQL ServerIndigo @ 9:50 AM

Para seleccionar 5 registros de manera en nuestra tabla, sólo debemos hacer lo siguiente

[sourcecode language='sql']
SELECT TOP 5 {COLUMNS}
FROM {TABLE}
ORDER BY NEWID()
[/sourcecode]

Simple y rápido.

Tags: ,


Sep 11 2008

C# Lanzar scripts sql desde nuestra aplicación

Category: ProgramacionIndigo @ 10:07 AM

En algunas ocasiones puede ser necesario lanzar scripts sql complejos contra nuestro servidor Sql Server. Estos scripts la mayoría de la veces contienes la palabra GO. Si usamos el método ExecuteNonQuery veremos que nuestro script no se ejecuta correctamente ya que este detiene la ejecución al encontrarse con el primer GO.

La solución en este caso es usar el objeto Server. El código es realmente simple

[sourcecode language='c#']ServerConnection serverConnection = null;
string sql = ““;
SqlConnection sqlConnection = new SqlConnection(”“);
serverConnection = new ServerConnection(sqlConnection);
Server server = new Server(serverConnection);
server.ConnectionContext.ExecuteNonQuery(sql);
[/sourcecode]

Si lo queremos hacer transaccional usaremos

[sourcecode language='c#']ServerConnection serverConnection = null;
try
{
  string sql = ““;
  SqlConnection sqlConnection = new SqlConnection(”“);
  serverConnection = new ServerConnection(sqlConnection);
  serverConnection.BeginTransaction();
  Server server = new Server(serverConnection);
  server.ConnectionContext.ExecuteNonQuery(sql);
  serverConnection.CommitTransaction();
}
catch (Exception ex)
{
  serverConnection.RollBackTransaction();
  MessageBox.Show(ex.Message);
}
[/sourcecode]

Sólo falta añadir que tendremos que hacer uso de la librerias

[sourcecode language='c#']using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
[/sourcecode]

Saludos.

Tags: ,