我嘗試執行下一個代碼以將所有空字符串替換爲NULL,其中列類型爲TEXT。但是這段代碼似乎什麼都不做。T-SQL將NULL分配給文本類型字段
UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0
什麼是這裏爲null此列正確的方式?
UPD。好的,這真的很有用。這只是奇怪的數據顯示Embarcadero DBArtasian
我嘗試執行下一個代碼以將所有空字符串替換爲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