MSSQL Server 2008 を使用しています。MySQL データベースを更新しようとしています。MSSQL-Database を MySQL-Database に参加させ、更新を完了しようとしましたが、奇妙な問題が発生しました。
次のクエリを実行すると、限られた量の結果が得られます。
select *
FROM [SQL-Database].[dbo].[Table] as c left join
openquery(MYSQL, 'select * from MySQL-Database.Table')
on c.KuNr=kunden_id collate German_PhoneBook_BIN
where c.Auswahltyp='2' and c.[gelöscht]=0
and c.[Mietzeit bis]>GETDATE() and c.aktiveMail>'0'
更新を行うと、データベース内のすべての行が更新されます。
update openquery(MYSQL, 'select * from MySQL-Database.Table')
set paket_id=7
FROM [SQL-Database].[dbo].[Table] as c left join
openquery(MYSQL, 'select * from MySQL-Database.Table')
on c.KuNr=kunden_id collate German_PhoneBook_BIN
where c.Auswahltyp='2' and c.[gelöscht]=0
and c.[Mietzeit bis]>GETDATE() and c.aktiveMail>'0'
違いは選択と更新だけですが、更新の「場所」を無視しているようなものです。