プロが教えるわが家の防犯対策術!

こんにちは、vbsでADODBを使ってDBの更新をしたいのですが
データ型 ntext の値を更新できずに困ってます。

t_meisaiテーブルのm_syohinの値をbbからaaに変更
update t_meisai set m_syohin = 'aa' where m_syohin = 'bb'
というSQL文を実行すると

[Microsoft][ODBC SQL Server Driver][SQL Server]データ型 ntext と varchar は equal to 演算子では互換性がありません。
80040E14 というエラーが出て更新できません。

ntextを使わなければいいのでしょうが
仕様の変更は許してもらえませんでした。

どうか、よろしくお願いします。

A 回答 (2件)

#1です。


すみません。ntextでしたので、nvarcharに変換すべきでしたね。

update t_meisai set m_syohin = 'aa'
where CONVERT(nvarchar(4000),m_syohin) = 'bb'
    • good
    • 1
この回答へのお礼

この方法に変えてやってみたのですが
型が一致しませんというエラーがでました。

検索条件に使えないとは知りませんでした。
データも多くないんで主キーを見て一つずつ
変更かけることでなんとかなりそうです。

どうも、ありがとうございました。

お礼日時:2008/12/22 13:58

SQL Server 2000なのですか?


ntextを使わなければならないのなら、仕方ないので検索条件を以下のように書き換えてください
(ntextは検索条件につかえませんので)。

update t_meisai set m_syohin = 'aa'
where CONVERT(varchar(8000),m_syohin) = 'bb'

SQL Server 2005であれば
where CONVERT(varchar(MAX),m_syohin) = 'bb'
とするところですが、2000では使えないので「十分長いバイト数」を指定します(8000よりも小さくても構わないです)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!