T-SQL为文本类型字段分配空值

T-SQL为文本类型字段分配空值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我尝试执行下一个代码,将所有空字符串替换为NULL,其中列类型为TEXT。但这段代码似乎什么也做不了 UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0 什么是使此列为空的正确方法 UPD。好的,这真的是一项工作。这只是Embarcadero DBArtasian奇怪的数据显示你的方式是正确的。 用CAST和RTRIM玩一点,也许你在球场上有一些空间。你的方式是正确的。 用CAST和RTRIM玩一点,也许你在场上有

我尝试执行下一个代码,将所有空字符串替换为NULL,其中列类型为TEXT。但这段代码似乎什么也做不了

UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0
什么是使此列为空的正确方法

UPD。好的,这真的是一项工作。这只是Embarcadero DBArtasian奇怪的数据显示你的方式是正确的。 用CAST和RTRIM玩一点,也许你在球场上有一些空间。

你的方式是正确的。
用CAST和RTRIM玩一点,也许你在场上有一些空格。

可能where条件不返回任何内容

尝试执行以下操作以查看有多少记录将受到影响

SELECT * from Table WHERE DATALENGTH(textField)=0

可能where条件不返回任何内容

尝试执行以下操作以查看有多少记录将受到影响

SELECT * from Table WHERE DATALENGTH(textField)=0

请将文本字段转换为varchar,因为LEN不能用于文本字段。这对我有用

更新mytable 设置textField=NULL
如果LEN(convert(varchar(1000),textField))=0,请将文本字段转换为varchar,因为LEN不能用于文本字段。这对我有用

更新mytable 设置textField=NULL
其中LEN(convert(varchar(1000),textField))=0应该可以工作。假设您没有任何真正的空字符串。您的表名是
table
?你应该用方括号括起来,就像这样:
[table]
@Jeff它只是一个例子,而不是它的真名table@MartinSmith-我用SELECT*从mytable中选择,其中DATALENGTH(textField)=0,并且有很多空文本字段。因此,没有理由认为这些字段不符合更新的条件。桌子上有触发器吗?应该可以。假设您没有任何真正的空字符串。您的表名是
table
?你应该用方括号括起来,就像这样:
[table]
@Jeff它只是一个例子,而不是它的真名table@MartinSmith-我用SELECT*从mytable中选择,其中DATALENGTH(textField)=0,并且有很多空文本字段。因此,没有理由认为这些字段不符合更新的条件。表上有任何触发器吗?您不能在
text
列上使用这些函数中的任何一个。由于
LEN
忽略尾随空格,因此不需要进行任何修剪。您不能在
text
列上使用任何这些函数。由于
LEN
忽略尾随空格,因此不需要修剪。