私は次の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などを行う