lunes, 9 de agosto de 2010

Combos con ancho dinamico (ASP.NET)

AGRADECIMIENTOS PROFUNDOS Y SINCEROS A YAHOO...y a CRISTIAN YUGAR (Paginar)



miércoles, 4 de agosto de 2010

Usar SQLCMD

SQLCMD

Si necesitan ejecutar un script desde consola de sql server 2005 aqui tenemos la solucion. Es util cuando tenemos el caso de un archivo *.sql cuyo tamaño es inmenso.


sqlcmd -S Instancia -d BaseDeDatos -U usuario -P contraseña -i pathScriptSQL

Ejemplo:

sqlcmd -S DESA-T008\SQLEXPRESS2005 -d IntranetLib -U admin -P admin -i archivo.sql


Muy efectivo!

martes, 23 de marzo de 2010

lunes, 18 de enero de 2010

Reiniciar un campo IDENTITY

¿Como reiniciar un campo IDENTITY en transact-sql?

Lo hacemos con la siguiente sentencia :

DBCC
CHECKIDENT ('dbo.articulos', RESEED,0)

A continuacion la información textual como aparece en el MSDN:

DBCC CHECKIDENT  (          table_name         [ , { NORESEED | { RESEED [ , new_reseed_value ] } } ] ) [ WITH NO_INFOMSGS ]
table_name

Es el nombre de la tabla para la que se va a comprobar el valor de identidad actual. La tabla especificada debe contener una columna de identidad. Los nombres de tabla deben cumplir las reglas de losidentificadores.

NORESEED

Especifica que el valor de identidad actual no se debe cambiar.

RESEED

Especifica que el valor de identidad actual se debería cambiar.

new_reseed_value

Es el nuevo valor que se va a usar como valor de identidad actual de la columna de identidad.

WITH NO_INFOMSGS

Suprime todos los mensajes de información.


DBCC CHECKIDENT (table_name, RESEED,new_reseed_value)

El valor de identidad actual se establece en new_reseed_value. Si no se han insertado filas en la tabla desde su creación, o si todas las filas se han quitado con la instrucción TRUNCATE TABLE, la primera fila insertada después de ejecutar DBCC CHECKIDENT utiliza new_reseed_value como identidad. De lo contrario, la siguiente fila insertada utiliza new_reseed_value + el valor de incremento actual.

Si la tabla no está vacía y se establece el valor de identidad en un número menor que el valor máximo de la columna de identidad, puede darse una de las siguientes condiciones:

  • Si existe una restricción PRIMARY KEY o UNIQUE en la columna de identidad, se generará el mensaje de error 2627 en operaciones de inserción en la tabla posteriores ya que el valor de identidad generado provocará un conflicto con los valores existentes.
  • Si no existe una restricción PRIMARY KEY o UNIQUE, las operaciones de inserción posteriores provocarán la duplicación de los valores de identidad.

lunes, 28 de septiembre de 2009

Modificar nombre de un campo. SQL SERVER

NO PODEMOS CAMBIAR EL NOMBRE DE UN CAMPO DE UNA TABLA CON ALTER TABLE, para ello usamos sp_rename; un SP de sistema.

Copio fielmente info del MSDN de SQL SERVER:

sp_rename (Transact-SQL)

Cambia el nombre de un objeto creado por el usuario en la base de datos actual. Este objeto puede ser una tabla, un índice, una columna, un tipo de datos de alias o un tipo definido por el usuario CLR (Common Language Runtime) de Microsoft .NET Framework.

ms188351.Caution(es-es,SQL.100).gifAdvertencia:
Al cambiar cualquier parte del nombre de un objeto se pueden interrumpir secuencias de comandos y procedimientos almacenados. Se recomienda no utilizar esta instrucción para cambiar el nombre a procedimientos almacenados, desencadenadores, funciones definidas por el usuario o vistas; en su lugar, quite el objeto y vuelva a crearlo con el nuevo nombre.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]

jueves, 5 de marzo de 2009

SQL SERVER 2005

CAMBIAR COLLATE EN CONSULTAS

Para hacer "casting" de collate cuando necesitamos comparar exceptuando acentos, mayusculas, minusculas, podemos usar esto:

SELECT *
FROM MARCA_Documento
WHERE (Descripcion LIKE '%' + 'PUBLICACION' + '%' collate Modern_Spanish_CI_AI) OR (Titulo LIKE '%' + 'PUBLICACION' + '%' collate Modern_Spanish_CI_AI)
ORDER BY FHAlta DESC

Usamos "collate" para indicar que el campo anterior se "convertira" al collate indicado. OK?


Modificar/eliminar columna de una tabla
Eliminar una restriccion de una tabla, usamos:

ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_restriccion

Eliminar una columna:
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna

Modificar el nombre de una columna:

EXEC
sp_rename 'Table.ColumnaVieja', 'ColumnaNueva', 'COLUMN';

ASP.NET (GRIDVIEW)

CommandArgument

Para extraer de cada fila de la grilla su nro de indice usamos:

((GridViewRow) Container).RowIndex

Ejemplo: