При попытке изменить столбец из NVARCHAR (макс) до VARCHAR (макс) я получаю сообщение об ошибке:Изменить NVARCHAR колонок VARCHAR типа данных
Cannot create a row of size 8063 which is greater than the allowable maximum row size of 8060.
Это верно из-за различное хранение, необходимого для хранения символов Юникода , Но есть ли способ заставить SQL Server сделать это преобразование?
EDIT: определение таблиц и изменить команду:
CREATE TABLE [Descriptions](
[SerialNo] [varchar](20) NOT NULL,
[LanguageCode] [char](2) NOT NULL,
[Note] [nvarchar](max) NOT NULL,
[Address] [varchar](2000) NOT NULL,
[StoreId] [varchar](3) NULL,
CONSTRAINT [UK_Descriptions] UNIQUE NONCLUSTERED
(
[SerialNo] ASC,
[LanguageCode] ASC,
[StoreId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
-- Alter column:
ALTER TABLE [Descriptions] ALTER COLUMN [Note] varchar(max) NOT null;
Оба 'NVARCHAR (макс) и' VARCHAR (макс) 'могут храниться вне страницы, так что они лишь способствуют указатель на пределе размера строки. Там должно быть что-то еще, не могли бы вы разместить определение таблицы? – Andomar
Возможный дубликат [Макс. Размер строки в SQL Server 2012 с полями varchar (max)] (http://stackoverflow.com/questions/19251004/max-row-size-in-sql-server.net-with-varcharmax- поля) – Tanner
или: http://stackoverflow.com/questions/3905934 – Tanner