Чтение с Linked Server и удаление на локальной БД - PullRequest
0 голосов
/ 09 августа 2010

У меня есть 2 одинаковые таблицы в разных базах данных. Я уже связал удаленную БД и установил для нее доступ к данным «True».

Однако я не могу заставить работать следующий запрос

GO
USE LOCALDB
GO
DELETE from [dbo].[TableA]
 WHERE [dbo].[TableA].[UniqueField] = (SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA])
GO

Этот запрос не дает мне никакой ошибки, но, опять же, он не удаляет запись, где есть совпадение в UniqueField Я сейчас совершенно заблокирован, и это единственный запрос, о котором я подумал, который не выдает ошибку.

РЕДАКТИРОВАТЬ: запрос говорит, что затронуто 0 строк.

Заранее спасибо,

EtonB.

1 Ответ

0 голосов
/ 09 августа 2010

Мысли ...

Я бы рассмотрел локальную загрузку табличной переменной, а затем ее удаление. Это остановит любой шанс запуска распределенного txn, который может произойти для локальных действий записи с использованием данных с удаленного сервера.

Является ли UniqueField varchar и "совместимость сопоставлений"? Или нет и нуждается в COLLATE. То есть, возможно, запрос работает так, как ожидалось, но совпадение до CASE.

Что это возвращает?

SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA]

Это работает для некоторых значений, но не для всех? Точный тип данных соответствует? и т.д ...

...