如何在SQL 2000中从VARCHAR切换到TEXT?

时间:2010-04-30 18:24:30

标签: sql-server tsql sql-server-2000

在将一堆字段从VARCHAR(bignumber)切换到TEXT之前,我需要考虑什么?

除了性能之外,在远期的某个时候,TEXT将被弃用,除了看起来我需要删除并重新创建表以更改列的数据类型这一事实?

这是针对SQL 2000--我不能做VARCHAR(max)和VARCHAR(8000)不够大。

4 个答案:

答案 0 :(得分:5)

不确定您是否只能改变列的数据类型:

ALTER TABLE dbo.YourTable
  ALTER COLUMN YourColumn TEXT

这不起作用吗? (不确定这是否可以在2000年恢复.....)

至于需要记住的事项:如果你需要进行字符串操作,那么TEXT数据类型的使用起来要麻烦得多,因为大多数(如果不是全部)通常的字符串函数(如LEN,SUBSTRING等)都不起作用它。所以在T-SQL本身,它是使用TEXT列的主要PIA ....

但除此之外,你应该没事,我相信。

答案 1 :(得分:3)

至少:

回到SQL Server 6.5天,我将一些数据存储在几个varchar(255)列中,因为varchar(8000)只是在SQL Server 7中引入的。

答案 2 :(得分:1)

许多T-SQL字符串函数不能用于文本 - 它们只能用于char / varchar / nchar / nvarchar。

答案 3 :(得分:1)

您无法搜索字段,因为使用字符串操作函数,许多查询将无效。最好将场分成两个或更多。说真的,如果这是唯一的方法,因为升级到Express Server版本的SQL Server 2008可能比坚持使用SQL Server 2000更好,恕我直言。实际上,分割字段也会很糟糕。算了。我不会这样做,除非我的老板拒绝升级,然后我必须选择哪些字段为VARCHAR(MAX)以及哪些字段要拆分,哪些字段可能会以文字作为类型。