2012-03-16 13 views
0

次のコードを実行して、すべての空の文字列をNULLに置き換えます。ここで、列の型はTEXTです。しかし、このコードは何もしないようです。T-SQLはテキスト型フィールドにNULLを割り当てます

UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0 

この列をnullにするには、ここをクリックしてください。

UPD。これは本当にうまくいっています。 Embarcadero DBArtasianの奇妙なデータの表示でした

+1

のために働きました。おそらくあなたは本当に空の文字列を持っていないでしょう。 –

+0

あなたのテーブル名は 'table'ですか? '[table]' – Jeff

+0

@Jeffそれはちょうど例えばテーブルの実名ではありません。 – nahab

答えて

2

あなたの道は正しいです。 CASTとRTRIMでちょっと試してみてください。おそらくフィールドにスペースがあります。条件は何

試しを返さない場合

0

probabily LENができないので、VARCHARにテキストフィールドを変換してください

SELECT * from Table WHERE DATALENGTH(textField)=0 
0
UPDATE mytable 
SET textField = NULL 
WHERE LEN(LTRIM(RTRIM(textField))) = 0 
+4

'text'カラムにこれらの関数を使用することはできません。 'LEN'は後続のスペースを無視するので、とにかくトリミングする必要はありません。 –

+0

あなたは正しいです。私はその質問でそれを逃した。 – Vinnie

2

を影響を受けることになりますどのように多くのレコードを確認するには、以下行いますテキストフィールドで使用されます。これは私が

UPDATE mytableは SETテキストフィールド= NULL LENは (変換(VARCHAR(1000)、テキストフィールド))動作するはず= 0

関連する問題