如何解决将列从 Nvarchar(max) 更改为 Nvarchar(4000) 错误
我将列从 NVARCHAR(MAX)
更改为 NVARCHAR(4000)
,该列不需要为 MAX,并且 4000 个字符对于该列应该足够了,因此为了提高性能,我将列缩小。
我认为这会很简单:
alter table [MyTable]
alter column [Description] nvarchar(4000) NULL
但是这给了我错误:
给参数 'Description' 的大小 (8000) 超过了 允许的最大值 (4000)。
我不明白这个错误信息。我没有指定 8000
也没有超过允许的最大值 4000
这里发生了什么?
编辑
表/列上的某些列可以使用 NVARCHAR(4000)
,而其他.. 则不行,使用数字 4000,错误似乎表明我可以在特定列上指定的最大值是 NVARCHAR(2000)>
解决方法
结果是其中一条评论所建议的 DDL 触发器。
这些 DDL 触发器由第三方提供,用于将数据同步到客户端,所以我不能 100% 确定这些触发器中发生了什么,但我想他们在计算上出错了,并认为最大值是nvarchar(2000)
而不是 nvarchar(4000)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。