25 abril 2012

SQL SERVER: Cómo activar/desactivar que la clave primaria de una tabla sea autoincrementada.


Tras una breve y éxitosa búsqueda por Google, encontré que esta es la sintaxis:

SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF }

Por ejemplo:

set identity_insert [mibasededatos].[dbo].[clientes] on
insert into clientes(IntIdCliente, strRazonSocial, intMunicipio,DtpFechaAlta) values (124,'Probando1',534, '6/10/1982 10:00:15')
set identity_insert [klevinmig].[dbo].[clientes] off

Donde la primera linea del ejemplo desactiva el incremento automatico del campo IntIdCliente, la segunda realiza la acción de inserción y la tercera vuelve a activar el autoincremento.

Adiós.

23 abril 2012

SQL Server: ejemplo con funciones de extraccion de dadtos

Sentencia SQL que a partir de clinom (campo donde se guarda el nombre de la empresa clienta y su código) nos extrae la longitud del campo clinom, la primera ocurrencia del campo separador (en este caso el parentesis de apertura), el tamaño del código, y el código.


select clinom,  len(clinom) as 'longitud', charindex('(',clinom) as 'primera ocurrencia', len(clinom)- charindex('(',clinom) -1 as 'tamaño del codigo',
substring(clinom, charindex('(',clinom)+1, len(clinom)- charindex('(',clinom) -1) as 'codigo'
from [klevinmig].[dbo].[clientesmig] where clinom like 'SUB. NEVERO -CSE BADAJOZ (%'



Este seria el resultado: 


09 abril 2012

C#: Función que acorta una cifra decimal para sólo mostrar dos números

Hola. He creado esta función (cuyo nombre es pelín desastroso, y de hecho solicito que me sugerais ideas), porque me pidieron que debia acortar el precio mostrado en el report factura para sólo imprimir dos decimales.
Habra otros modos de hacerlo, pero a mi este me resulta muy útil.


private string AcortarCifra(decimal cifra)

{


string strCifra = Convert.ToString(cifra);

int dondeestalacoma = strCifra.IndexOf(',');
string partedecimal;
string parteentera;
if (dondeestalacoma != -1)
{
if (strCifra.Length > (dondeestalacoma + 2))
{
partedecimal = strCifra.Substring(dondeestalacoma + 1, 2);
parteentera = strCifra.Substring(0, dondeestalacoma);
strCifra = parteentera + "," + partedecimal;
}

}
else
strCifra = strCifra + ",00";
return strCifra;

}