DECLARE @tablaReferencia TABLE(
id INT,
valorReferencia INT
)
DECLARE @tablaAActualizar TABLE(
id INT,
valor INT DEFAULT 0,
otro INT DEFAULT 0
)
DECLARE @actualizados TABLE(
id INT,
valor INT,
otro INT
)
INSERT INTO @tablaReferencia(id, valorReferencia) VALUES(1, 4)
INSERT INTO @tablaReferencia(id, valorReferencia) VALUES(2, 5)
INSERT INTO @tablaAActualizar(id) VALUES(1)
INSERT INTO @tablaAActualizar(id) VALUES(2)
INSERT INTO @tablaAActualizar(id) VALUES(3)
SELECT * FROM @tablaReferencia
SELECT * FROM @tablaAActualizar
UPDATE @tablaAActualizar
SET valor = tr.valorReferencia, otro = 6
OUTPUT
INSERTED.id, INSERTED.valor, INSERTED.otro
INTO @actualizados
FROM @tablaAActualizar ta
INNER JOIN @tablaReferencia tr
ON ta.id = tr.id
SELECT * FROM @tablaAActualizar
SELECT * FROM @actualizados
Este es un blog dedicado a explicar temas básicos, de programación Web, que comprenden HTML, Javascript, CSS, SQL, C# y ASP.NET.
lunes, 15 de agosto de 2011
Actualización de registros en SQL Server con unión de tablas y recuperación de registros actualizados
Este script demuestra cómo actualizar 2 tablas relacionadas mediante un JOIN y como poder recuperar los registros actualizados.
lunes, 23 de mayo de 2011
Año bisiesto en SQL Server
He aquí una función que determina el ano bisiesto en SQL Server.
Las reglas para que un año sea bisiesto son:
- Divisible entre 4
- No divisible entre 100
- Divisible entre 400
CREATE FUNCTION esBisiesto(
@fecha DATETIME
) RETURNS BIT
AS
BEGIN
DECLARE
@anio INT,
@esBisiesto BIT
SET @anio = YEAR(@fecha)
IF @anio % 4 = 0 AND (@anio % 100 <> 0 OR @anio % 400 = 0)
BEGIN
SET @esBisiesto = 1
END
ELSE
BEGIN
SET @esBisiesto = 0
END
RETURN @esBisiesto
END
lunes, 18 de abril de 2011
Función para reportar errores en SQL Server 2008
Esta es una función que reporta errores en SQL Server 2008.
Aquí hay otras funciones de útiles:
ERROR_LINE()
CREATE FUNCTION [dbo].[fnDevuelveError]()
RETURNS VARCHAR(MAX)
AS
BEGIN
RETURN 'No. de Error: ' + CONVERT(VARCHAR, ERROR_NUMBER()) + CHAR(13) + CHAR(10) + --{CR}{LF}
'Mensaje: ' + ISNULL(ERROR_MESSAGE(),'') + CHAR(13) + CHAR(10) +
'Procedimiento: ' + ISNULL(ERROR_PROCEDURE(),'')
END
Aquí hay otras funciones de útiles:
ERROR_NUMBER()
ERROR_SEVERITY()
ERROR_STATE()
ERROR_PROCEDURE()
ERROR_MESSAGE()
ERROR_LINE()
ERROR_LINE()
martes, 8 de marzo de 2011
Lista de transferencia de responsabilidad
Hay veces que necesitamos transferir el conocimiento o la resposabilidad de los proyectos de software. Aquí hay una lista de pasos a seguir para hacerlo correctamente:
Lista de transferencia
¿Cuales son las prioridades de acuerdo a tu criterio?
¿Qué dudas o ideas tienes que no han sido mencionadas?
¿Cuales son tus próximos pasos clave, y cuando piensas completarlos?
¿Qué necesitas de mi parte para que seas exitoso?
¿Hay contingencias clave que debiéramos planear?
¿Cuando revisaremos los progresos y/o problemas?
¿Quien mas necesita saber de nuestros planes y como se los informaremos?
miércoles, 2 de marzo de 2011
Escribir archivos de texto en C#
using System;
using System.IO;
namespace Utilerias
{
public class Escritor
{
public static void EscribirEnArchivo(string archivo, string texto, bool sobreescribirArchivo)
{
TextWriter escritor = null;
try
{
escritor = (sobreescribirArchivo) ?
File.CreateText(archivo) :
File.AppendText(archivo);
escritor.Write(texto);
}
catch (Exception exc)
{
throw exc;
}
finally
{
if (escritor != null)
{
escritor.Close();
escritor.Dispose();
}
}
}
}
}
Para usar la clase se utiliza:
using System;
using Utilerias;
namespace EscritorEnTextoPrueba
{
class Program
{
static void Main(string[] args)
{
try
{
Escritor.EscribirEnArchivo(@"D:\directorio\archivo.txt",
"Este es un texto de prueba\r\n"
+ "Este es un texto de prueba\r\n"
+ "Este es un texto de prueba\r\n"
+ "Este es un texto de prueba\r\n"
+ "Este es un texto de prueba\r\n"
+ "Este es un texto de prueba\r\n", false);
Console.Write("Archivo creado correctamente");
}
catch (Exception exc)
{
Console.Write(exc.Message);
}
finally
{
Console.ReadLine();
}
}
}
}
Suscribirse a:
Entradas (Atom)