gpt4 book ai didi

mysql - 在数据库中将 nvarchar(MAX) 更改为 nvarchar(n)

转载 作者:行者123 更新时间:2023-11-29 05:02:38 31 4
gpt4 key购买 nike

我刚刚将表中的一个 nvarchar(MAX) 字段更改为 nvarchar(250)。有人可以告诉我如果条目超过 250 个字符,数据会发生什么情况吗?

我关心的不是可见数据,而是幕后发生的事情:

  • 如何处理超出容器限制的数据数据?
  • 我在几个地方读到该表必须删除并重新创建。这是真的吗?为什么?我没有看到其他人收到的任何错误。
  • 有没有办法在进行此更改后恢复截断的数据? (我不想做,但我很好奇)

最佳答案

如果您已将列 nvarchar(MAX) 字段更改/更改为 nvarchar(250) 并且您没有收到任何错误,这意味着行中没有包含超过 250 个字符的数据,这就是 SQL Server 成功更改列长度的原因并且您的数据准确/完整。

如果任何一行包含超过 250 个字符,则 SQL Server 将报错并且 alter 语句将失败。这意味着数据类型长度不​​会改变。

Msg 8152, Level 16, State 13, Line 12 String or binary data would be truncated. The statement has been terminated.

如果 SET ANSI_WARNINGS OFF 更改列长度时,SQL Server 将在没有任何警告的情况下更改列长度,并且多余的数据将被截断。

默认情况下,它是SET ANSI_WARNINGS ON来警告用户。

我认为一旦数据被截断,以后就无法恢复。

关于mysql - 在数据库中将 nvarchar(MAX) 更改为 nvarchar(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096260/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com