La conversion de ntext à nvcharmax(max) - Prise autour de la taille limitation

Je suis en train de modifier une existante de SQL NText colonne de nvcharmax(max), et la survenue d'une erreur sur la limite de taille. Il y a une grande quantité de données existantes, ce qui est plus que le 8k limite, je crois.

Nous sommes à la recherche pour convertir ce, afin que le champ est consultable dans LINQ.

L'2x SQL j'ai essayé sont:

update Table
set dataNVarChar = convert(nvarchar(max), dataNtext)
where dataNtext is not null

update Table
set dataNVarChar = cast(dataNtext as nvarchar(max))
where dataNtext is not null

Et l'erreur que j'obtiens est:

Cannot create a row of size 8086 which is greater than the allowable maximum row size of 8060.

C'est à l'aide de SQL Server 2008.

Toute aide appréciée,
Merci.


Mise À Jour /Solution:

L'marqué réponse ci-dessous est correct, et SQL 2008 peut modifier la colonne type de données correct dans ma situation, et il n'y a pas des drames avec LINQ-utilisation de l'application que nous utilisons sur le dessus de celui-ci:

alter table [TBL] alter column [COL] nvarchar(max)

J'ai également été invités à le suivre avec:

update [TBL] set [COL] = [COL]

Qui effectue la conversion en déplaçant les données à partir du lob structure de la table (si la longueur en moins de 8k), ce qui améliore les performances /garde quelque chose de propre.

InformationsquelleAutor Overflew | 2011-01-16