Campo de texto de gran tamaño

23/05/2004 - 16:27 por Jorge Eldis | Informe spam
Hola Amigos como estan,

Que tipo de campo puedo poner en SQL para que este almacene gran cantidad de
informacion de texto por registro?

Saludos Jorge Eldis
 

Leer las respuestas

#1 Maxi
23/05/2004 - 17:00 | Informe spam
Hola, sacado de los BOL

Utilizar datos text e image
Microsoft® SQL ServerT 2000 almacena cadenas de caracteres con más de 8.000
caracteres y datos binarios con más de 8.000 bytes en tipos de datos
especiales llamados text e image. Las cadenas Unicode superiores a 4.000
caracteres se almacenan en el tipo de datos ntext.

Por ejemplo, suponga que tiene un archivo grande de texto (.TXT) de
información de clientes que es necesario importar a la base de datos de SQL
Server. Estos datos deben almacenarse como un único dato, en lugar de
integrarlos en las diversas columnas de las tablas de datos. Con este
propósito puede crear una columna del tipo de datos text. Sin embargo, si
necesita almacenar logotipos de empresa, almacenados actualmente como
imágenes TIFF (.TIF) de 10 KB cada uno, cree una columna del tipo de datos
image.

Si los datos del texto que desea almacenar se encuentran en formato Unicode,
use el tipo de datos ntext. Por ejemplo, una carta modelo creada para
clientes internacionales seguramente contendrá ortografías y caracteres
internacionales usados en varios idiomas distintos. Almacene estos datos en
una columna ntext.

Cada valor de datos de text y ntext tiene una intercalación. Las
intercalaciones definen atributos como las reglas de comparación, la
distinción entre mayúsculas y minúsculas y la distinción de los acentos. Las
intercalaciones para los valores text también especifican una página de
códigos, que define las combinaciones de bits que se utilizan para
representar cada carácter. Cada valor ntext utiliza la página de códigos
Unicode, que es la misma para todas las intercalaciones. Cada base de datos
tiene una intercalación predeterminada. Cuando se crea una columna text o
ntext, se le asigna la intercalación predeterminada de la base de datos a
menos que le asigne una intercalación específica mediante la cláusula
COLLATE. Cuando se combinan o se comparan dos valores text o ntext que
tienen intercalaciones distintas, las reglas de precedencia de intercalación
determinan la intercalación que se utiliza para la operación.

Los datos de tipo image se almacenan como una cadena de bits y no son
interpretados por SQL Server. Cualquier interpretación de los datos de una
columna image debe ser realizada por la aplicación. Por ejemplo, una
aplicación podría almacenar datos en una columna image con el formato BMP,
TIFF, GIF o JPEG. La aplicación que lee los datos de la columna image debe
reconocer el formato de los datos y mostrarlos correctamente. Todo lo que
hace una columna image es proporcionar una ubicación para almacenar la
secuencia de bits que conforman los datos de la imagen.

Utilizar texto en la fila para almacenar valores text, ntext e image
Normalmente, las cadenas text, ntext o image son cadenas de caracteres o
binarias grandes (hasta un máximo de 2 GB) que se almacenan fuera de una
fila de datos. La fila de datos sólo contiene un puntero de texto de 16
bytes que apunta al nodo raíz de un árbol compuesto de punteros internos que
asignan las páginas en las que se almacenan los fragmentos de la cadena.

Con Microsoft SQL Server puede almacenar valores text, ntext e image
pequeños o medianos en una fila de datos, lo que mejora la velocidad de las
consultas que tienen acceso a estos valores.

Cuando se almacena una cadena text, ntext o image en la fila de datos, SQL
Server no tiene que tener acceso a una página o a un conjunto de páginas
independiente para leer o escribir la cadena. Esto hace la lectura y
escritura de cadenas text, ntext o image en filas tan rápida como la lectura
y escritura de cadenas varchar, nvarchar o varbinary.

Para almacenar cadenas text, ntext o image en la fila de datos, habilite la
opción text in row mediante el procedimiento almacenado sp_tableoption.

sp_tableoption N'MyTable', 'text in row', 'ON'
Si lo desea, puede especificar un límite máximo, de 24 a 7000 bytes, para la
longitud de una cadena text, ntext e image almacenada en una fila de datos:

sp_tableoption N'MyTable', 'text in row', '1000'
Si especifica 'ON' en vez de un límite determinado, el valor predeterminado
del límite es de 256 bytes. Este valor predeterminado proporciona la mayor
parte de las ventajas de rendimiento: Es suficientemente grande como para
asegurarse que se pueden almacenar las cadenas pequeñas y los punteros de
texto raíz, pero no tan grande como para que disminuya las filas por página
y afecte al rendimiento.

Aunque en general no debería establecer el valor por debajo de 72, tampoco
debería configurar este valor demasiado alto, especialmente para tablas
donde la mayor parte de las instrucciones no hacen referencia a columnas
text, ntext e image o hay varias columnas text, ntext e image.

También puede utilizar sp_tableoption para desactivar la opción
especificando un valor de opción de 'OFF' o 0:

sp_tableoption N'MyTable', 'text in row', 'OFF'


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Jorge Eldis" escribió en el mensaje
news:ux$
Hola Amigos como estan,

Que tipo de campo puedo poner en SQL para que este almacene gran cantidad


de
informacion de texto por registro?

Saludos Jorge Eldis


Preguntas similares