T-SQL将NULL分配给文本类型字段
我尝试执行下一个代码以将所有空字符串替换为NULL,其中列类型为TEXT。但是这段代码似乎什么都不做。T-SQL将NULL分配给文本类型字段
UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0
什么是这里为null此列正确的方式?
UPD。好的,这真的很有用。这只是奇怪的数据显示Embarcadero DBArtasian
你的方式是正确的。 和CAST和RTRIM一起玩,也许你在场上有一些空间。
probabily WHERE条件不返回任何
尝试做做下面来看看有多少纪录将受到影响
SELECT * from Table WHERE DATALENGTH(textField)=0
UPDATE mytable
SET textField = NULL
WHERE LEN(LTRIM(RTRIM(textField))) = 0
问题的更新你不能在'text'列上使用任何这些函数。因为'LEN'忽略尾部空间,所以不需要修剪。 – 2012-03-16 14:18:18
你是对的。我错过了这个问题。 – Vinnie 2012-03-16 20:03:03
请转换文本字段为varchar,因为LEN不能用于文本字段。这为我工作
UPDATE MYTABLE SET文本框= NULL WHERE LEN(转换(VARCHAR(1000),文本框))= 0
这应该工作。大概你没有任何真正的空弦。 – 2012-03-16 14:05:43
你的餐桌名是'table'吗?你应该把方括号括起来,就像这样:'[table]' – Jeff 2012-03-16 14:06:49
@Jeff它只是例如,不是真实的名字 – nahab 2012-03-16 14:07:20