Propiedades de las columnas

Submitted by achiola on Lun, 12/14/2009 - 15:50

A las columnas (campos) de una tabla podemos aplicarle varias propiedades, entre las cuales podemos destacar:

 

  • Null / not null: Propiedad nos indica si la columna acepta o no nulos, una buena práctica es siempre explicitar esta opción ya que puede variar dependiendo de la propiedad de base de datos ANSI_NULL_DEFAULT.
  • Collate: Esta propieda controla que caracteres puden almacenarce. Lo importante de esta propiedad es que podemos setearla en varios niveles, el mas alto es a nivel de instancia, luego a nivel base de datos, nivel tabla y el mas bajo de todos columna.
  • Identity: Esta propiedad hace que la columna obtenga valores de forma automática. Estos valores son numericos (excepto tipos float y real). Solo puede haber un identity por tabla. Al ser automático el usuario no puede insertar o actualizar estos campos. Se puede cambiar el próximo valor con el comando DBCC CHECKIDENT.
  • RowGuidCol:  Esta propiedad es utilizada principalmente por las replicaciones de tipo Merge, para asegurar un id único a través de varias db.
  • Filestream: Antes de la versión 2k8, necesitabamos extraer el contenido de un archivo y almacenarlo en campos de tipo varBinary(MAX), varChar(MAX) o nVarChar(MAX). Sin embargo estabamos limitados a 2GB. Para poder sortear esta limitación lo que podíamos hacer era almacenar el nombre del archivo en la db y mantener el archivo en el OS. Ahora bien, filestream, combina lo mejor de ambos mundos. Los datos son almacenados como BLOB y son controlados y mantenidos por SQL Server, sin embargo, los datos residen en un archivo sobre el OS. Estos nos permite entre otras cosas, realizar backup de db y archivos al mismo tiempo.
  • Not for Replication: Esta propiedad se utiliza en combinación con Identity. (obviamente hay que usarla cuando una db participa de una replicación).
  • Sparse: Nuevo en 2008, al habilitar esta propiedad los datos null no ocupan espacio, debería utilizarce solo en columnas que tienen muchos datos null, ya que al registrar un dato no-null el mismo ocupa 4 bytes adicionales. Algunas restricciones:
    • La columna debe permitir null
    • No puede aplicarce a datos RowGuidCol o Identity
    • No puede aplicarce a Text, nText, Image, TimeStamp, Geomtry, Geography, ni tipos definidos por el usuario
    • Tampoco en varBinary(MAX) con la propiedad Filestream
    • Campos calculados
    • Columnas que son parte de un clustered index o pk

 

glqxz9283 sfy39587stf02 mnesdcuix8
sfy39587stf03
sfy39587stf04