使用TEXT DataType执行字符串解析

时间:2010-10-31 19:02:42

标签: sql sql-server tsql

在SQL中使用TEXT数据类型

使用SQL 2000,我想执行以下

Select @String = SUBSTRING(@String, @idx + DATALENGTH(@firstDelimiter)/ 2,LEN(@String)) 

注意:@String是TEXT类型,@ FirstDelimiter是Varchar(4)类型。

为什么我无法运行上述代码?我该如何执行上述操作?

以上是否等同于以下

SET @String = RIGHT(@String,  LEN(@String) - (@FoundIndex + DATALENGTH(@FirstDelimeter) / 2))

1 个答案:

答案 0 :(得分:1)

SQL Server 2000 TEXT数据类型支持通常的字符串操作函数。这只是在SQL Server的更高版本中,您应切换到VARCHAR(MAX)的众多原因之一 - 该类型将支持所有常用的字符串函数。

不幸的是,对于SQL Server 2000,你仍然坚持使用TEXT数据类型,如果你使用那种数据类型,你会遇到一组非常有限的字符串函数 - 请参阅{{3 }}。

正如您所看到的,支持SUBSTRING函数 - 但MSDN here上的MSDN docs也明确指出SUBSTRING的返回类型是VARCHAR类型 - 而不是{{1} }}

SQL Server 2000的TEXT数据类型上的字符串操作是一个令人讨厌的噩梦 - 如果你有任何机会,升级到2005或更新版本并使用TEXT代替 - 你会省去很多悲伤和浪费时间......