#sql #sql-server #tsql
#sql #sql-сервер #tsql
Вопрос:
У меня есть сервер под названием ERP-SERVER и сервер под названием SQLDEV-SERVER. У них обоих есть экземпляр blob-объекта, но мы никогда не копируем весь blob-объект на SQLDEV-СЕРВЕР, поскольку это было бы слишком много данных.
Поэтому при попытке получить доступ к файлу на нашем тестовом сервере следует сначала проверить, существует ли этот файл на SQLDEV-СЕРВЕРЕ, и, если нет, проверить, существует ли файл на ERP-СЕРВЕРЕ. Вот где все идет не так. Этот фрагмент кода (SQL) раньше работал, но где-то по пути он сломался. Я сузил его до запроса между базами данных, просто возвращающего совершенно разные результаты.
итак, например, я запускаю этот запрос на экземпляре ERP-СЕРВЕРА в SQL management studio:
SELECT count(*)
FROM [erp-server].[Extranet_Blob].[dbo].[FileStorBlob]
это возвращает 223221 результат.
Когда я запускаю тот же запрос на экземпляре SQLDEV-SERVER в SQL management studio, он возвращает 313 результатов.
Он указывает на тот же сервер и ту же базу данных, но с совершенно другим количеством, поэтому он также не возвращает файлы из рабочей среды, когда они не найдены в среде разработки.
Есть какие-либо указания на то, где может находиться эта проблема?
Комментарии:
1. У вас есть несколько подключенных экземпляров в SSMS? Попробуйте в SQL Management Studio отключиться и снова подключиться к нужному экземпляру и снова выполнить запрос.
Ответ №1:
Посмотрите очень внимательно на определение вашего связанного сервера. Когда вы выполняете запрос на SQLDEV-СЕРВЕРЕ, он использует определение связанного сервера с этим именем, а не обязательно ERP_Server. Возможно ли, что кто-то подправил определение?
Комментарии:
1. Вот и все, этот экземпляр был недавно создан заново, и связанное определение сервера указывало на себя, потому что оно не могло разрешить