当前位置: 首页 > 面试题库 >

在现有的SQL Server 2005数据库中,将数据类型varchar更改为nvarchar。有什么问题吗?

顾高扬
2023-03-14
问题内容

我需要将数据库表中的列数据类型从更改varcharnvarchar,以支持中文字符(当前,varchar具有这些字符的字段仅显示问号)。

我知道如何更改值,但是我想看看这样做是否安全。在进行更改之前,有什么需要注意的吗?谢谢!


问题答案:

请注意,此更改是数据大小的更新,请参见深入了解SQL Server表列。所做的更改将添加一个新的NVARCHAR列,它将更新将dta从旧的VARCHAR复制到新的NVARCHAR列的每一行,然后将旧的VARCHAR列标记为已删除。如果表很大,则会生成一个大的日志,因此请为此做好准备。更新后,请运行DBCCCLEANTABLE以回收以前的VARCHAR列使用的空间。如果可以承受,则可以更好地运行ALTER TABLE ... REBUILD,它不仅可以回收空间,还可以完全删除物理上已删除的VARCHAR列。开头的链接文章有更多详细信息。

您可能还想对表启用Unicode压缩。



 类似资料:
  • 字段的datatype可以从Nvarchar更改为int吗?? 这个有效吗??如果不能,可以用其他方法吗??

  • 最近在使用国产数据库达梦数据库遇到一个问题 数据库中VARCHAR 字段存储字符的长度受 CHARSET和LENGTH_IN_CHAR 的影响 CHARSET代表字符集编码 默认是GBK 一个中文字符用三个字节表示 LENGTH_IN_CHAR 代表是否以字节存储,0代表字节 1代表字符 那么问题来了 如果一个字段 长度为10 VARECHAR filed(10) 字符集编码是UTF-8 且以字节

  • 问题内容: 如果有Wrapper类使Java成为纯面向对象的语言,那么为什么会有可在Java中使用的Primitive数据类型呢? 问题答案: 为了效率。基本类型的变量直接包含值。非基本类型的变量是引用,引用存储在内存中其他位置的对象。 每次您需要使用包装器类型的值时,JVM都需要在内存中查找对象以获取该值。对于原始类型,这不是必需的,因为变量本身包含值,而不是对包含该值的对象的引用。 但是,这不

  • 问题内容: 仅仅是支持多字节字符吗?如果是这样的话,除了存储方面的问题,真的有什么要使用的varchars吗? 问题答案: 一列可以存储任何数据。甲varchar柱被限制为一个8位的代码页。有人认为varchar应该使用它,因为它占用更少的空间。我相信这不是正确的答案。代码页不兼容是一种痛苦,而Unicode是解决代码页问题的方法。如今,有了便宜的磁盘和内存,实际上没有理由再浪费时间浪费代码页了。

  • 我有一个包含复杂条目的数组列表的结构,我想将它们转换为浮点数。虚部可以丢弃,这很好。 我想知道,为什么这不起作用,而另一方面,在创建列表“数组”之前将类型更改为float会起作用。 这是一个非常基本的问题,但如果有人能分享他或她的想法,我将非常高兴。 感谢提前:)

  • 问题内容: 在我看来不错,但结果是 为什么?怎么了? 问题答案: 您尚未定义“ gs”别名。您只有“ ags”和“ tgs”。