我在 SQL SERVER 2008 中有一张现有的表格,其中一个列是 NVARCHAR(MAX),并且它只有小于10个字符的值。
这个表格正在运行,并有数据。
我有一个需求,需要将这个列从 NVARCHAR(MAX) 修改为 NVARCHAR(50)。但是在进行此操作时,SQL Server 会给出一些截断错误,尽管该列中的数据少于10个字符。
以下是我的脚本:
ALTER TABLE [dbo].[Table] ALTER COLUMN [Column1] NVARCHAR ( 50 ) NOT NULL
WHERE LEN(Column1)>50
。还要注意,NVARCHAR(MAX)
是用于存储二进制大对象(BLOB)的类型,SQL Server可能不允许更改类型。这就是为什么您应该发布完整错误消息的原因。 - Panagiotis KanavosWHERE DATALENGTH(Column1) > 100
。 - Reversed Engineer