SQL Server 2005中NTEXT与NVARCHAR(MAX)

NTEXT:

默认情况下,NTEXT将文本数据存储在LOB结构中, 在表结构中只存储指针,指针指向该数据在LOB中的存储位置。

NVARCHAR(MAX)

默认情况下,不超过8,000字节的数据直接存储在表结构中,超过的才和NTEXT一样将数据存储在LOB结构中。

NTEXT向NVARCHAR(MAX)的转换:

ALTER TABLE 表名 ALTER COLUMN 字段名 NVARCHAR(MAX) null

执行上面的SQL语句之后,虽然完成了转换,但数据的存储结构并没有改变,还是按照NTEXT的默认存储方式存储在LOB中。

如何实现转换后数据按NVARCHAR(MAX)的方式进行存储呢?只需执行下面的语句:

UPDATE 表名 SET 字段名 = 字段名

比如:表名是Comment,字段名是Content,SQL语句就是: UPDATE Comment SET Content = Content

实测数据:100条数据,耗时706秒。 

NTEXT将在以后版本的SQL SERVER中不被支持,微软的文档中建议用NVARCHAR(MAX)取代NTEXT。

ntext, text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead. 

参考文档:

NTEXT vs NVARCHAR(MAX) in SQL 2005

Moving ntext to nvarchar(max)

SQL Server, Converting NTEXT to NVARCHAR(MAX) 

SQL Server 2005 Large Value Data Types

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值