SQL 2008-varchar(max)与文本数据类型
可能重复:SQL 2008-varchar(max)与文本数据类型,sql,sql-server-2008,varchar,sqldatatypes,varcharmax,Sql,Sql Server 2008,Varchar,Sqldatatypes,Varcharmax,可能重复: 从本文中可以看出,它们的容量大小相同: 这是真的吗?真正的区别是什么 我刚刚从oracle(clob)迁移了一些数据,并将其转换为varchar(max),但看起来它截断了一些值,我应该使用文本吗 谢谢!不,你不应该使用TEXT。首先,你会发现许多字符串操作都不适用于它。根本不要使用TEXT、NTEXT或IMAGE-使用VARCHAR(MAX)、NVARCHAR(MAX)或VARBINARY(MAX)。传统类型(TEXT、NTEXT、IMAGE)已弃用,对它们的支持将在SQL S
从本文中可以看出,它们的容量大小相同: 这是真的吗?真正的区别是什么 我刚刚从oracle(clob)迁移了一些数据,并将其转换为varchar(max),但看起来它截断了一些值,我应该使用文本吗
谢谢!不,你不应该使用
TEXT
。首先,你会发现许多字符串操作都不适用于它。根本不要使用TEXT
、NTEXT
或IMAGE
-使用VARCHAR(MAX)
、NVARCHAR(MAX)
或VARBINARY(MAX)
。传统类型(TEXT、NTEXT、IMAGE)已弃用,对它们的支持将在SQL Server的未来版本中取消
在使用它们的方式上有很大的不同。新的MAX类型支持有效的语法更新。旧类型有一组神秘的函数来实现相同的(,)
新的MAX类型可用于或之类的函数,任何接受VARCHAR(N)
的函数也将接受VARCHAR(MAX)
旧类型不支持MAX类型支持的隐式转换,请参阅
某些引擎功能适用于MAX类型,但不适用于传统类型,例如联机操作(in)链接的文章只涉及空间分配。至少要知道,对于新表,请使用varchar(MAX)、nvarchar(MAX)或varbinary(MAX)
同样重要的是如何与这些值交互。由于数据类型的原因,您是更愿意使用标准列=“真长值”还是其他不太常见的操作来处理列?文本正在变得不受欢迎-此线程有您想要的答案:您使用了什么代码来迁移数据?我想你有一个问题,你是如何做到的,而不是数据类型是什么。看看链接该死的微软。为什么他们不能坚持惯例,使用像MySQL和Postgres这样的文本?@Henley,因为他们已经使用了文本,它很烂。为什么MySQL不能遵循标准,使用偏移量/获取,而不是这种愚蠢的限制废话?泥泞是双向的……如果风很大