0

私は次のwhere句を持っています

WHERE
(
    target.sender_name <> source.sender_name
)

ターゲットは Microsoft SQL Server のテーブルにエイリアスを設定し、ソースはリンク サーバー経由でリンクされた MySQL サーバー上のほぼ同一のテーブルにエイリアスを設定します。

もともと私は両方のテーブルにテキストフィールドとしてsender_nameを持っていて、2つのテーブルを偶発的なものにしようとしていましたが、上記の句がいつだったのか、実行しようとすると吐き出しました

The data types text and text are incompatible in the not equal to operator.

少し調べてみると、tsqlのテキストが減価償却されており、varchar(max)を使用する必要があることがわかりましたが、そうするとこのエラーが出力されました

The data types varchar(max) and text are incompatible in the not equal to operator.

周りを見回すと、同等のものを使用しているようですが、4つのテキストフィールドVARCHAR(65535)を持つテーブルで問題が発生し、同じ句にある他の3つのフィールドでも同じであると信じているエラーが発生します

だから私は、tsqlのフィールドをvarchar(max)持つ私の句で使用できるmysqlに同等のものがあるかどうか疑問に思っていますvarchar(max)

注: 句が含まれるクエリは tsql で実行されます。これは、MySQL であるリンク サーバー上の単なるテーブルです。

編集:句が入るのはUPDATEクエリです。すべてのフィールドをチェックし、データが異なるレコードを更新します.2つのテーブルを同期するためにのみ使用されるため、サーバー上で作業をローカライズできますリンクサーバーを使用してINNER JOINSなどを行う

4

0 に答える 0