在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))
答案 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
代替 - 你会省去很多悲伤和浪费时间......