No se pueden usar columnas de texto, ntext o imagen en las tablas 'insertado' y 'eliminado'.Cómo utilizar texto, ntext o columnas de imagen en las tablas 'insertado' y 'eliminado'
¿Cuál debería ser la solución en este caso? :(
No se pueden usar columnas de texto, ntext o imagen en las tablas 'insertado' y 'eliminado'.Cómo utilizar texto, ntext o columnas de imagen en las tablas 'insertado' y 'eliminado'
¿Cuál debería ser la solución en este caso? :(
A partir de SQL Server 2005, TEXT/NTEXT/IMAGE
están en desuso -. Usted debe utilizar los tipos de datos y (N)VARCHAR(MAX)
VARBINARY(MAX)
lugar
(N) VARCHAR (MAX) (ver MSDN docs here) y varbinary (max) permitir hasta 2 GBytes de datos
a partir de los documentos de MSDN:
nvarchar [(n | max)]
de longitud variable Unicode datos del personaje n puede ser un valor de 1 a 4,000. max indica que el tamaño máximo de almacenamiento es de 2^31-1 bytes. (= 2 GB)
El (N) VARCHAR (MAX) tipos también permiten toda la función habitual cadena de T-SQL para trabajar en ellos - algo que no era el caso con el texto (N) en absoluto .
Como este MSDN article shows, los tipos de reemplazo son compatibles con disparadores, también:
SQL Server 2008 no permite la texto, ntext o imagen columna referencias en el inserted y deleted tablas para DESPUÉS de desencadenantes. Sin embargo, estos tipos de datos están incluidos solo para fines de compatibilidad con versiones anteriores . El almacenamiento preferido para datos de gran tamaño es utilizar el varchar (max), nvarchar (max), y varbinary (max) datos tipos. Tanto DESPUÉS Y en vez de desencadena apoyo varchar (max), nvarchar (max) y varbinary (max) datos en las tablas insertadas y eliminadas.
Esta es la solución:
SQL Trigger cannot do INSTEAD OF DELETE but is required for ntext, image columns
Esencialmente lo que necesita para unirse a la inserted
y/o deleted
pseudo-mesas sobre la mesa subyacente y leer los datos NTEXT
, TEXT
o IMAGE
del subyacente mesas.
Hola Marc, sin embargo, me gustaría saber que NVARCHAR MAX tiene solo 4000 caracteres en unicode ... no estoy seguro acerca de NTEXT. Estoy trabajando en 2008 y la costura funciona bien – DucDigital
Sí, NTEXT sigue siendo compatible en 2008, aunque no estoy seguro del 2008 R2. Está a punto de desaparecer, reemplázalo ahora. Usando NVARCHAR (MAX), también puede usar todas las funciones de cadena normales en su campo; no puede hacer esto en NTEXT en la mayoría de los casos. –
http://sqltips.wordpress.com/2007/05/28/use-varcharmaxnvarcharmax-instead-of-text-ntext/ encontré este. Gracias marc – DucDigital