Full-text search по синониму на таблицу прилинкованного сервера

prog_new
Дата: 29.01.2013 09:49:09
Добрый день.

Есть сервер SQL_1 ( с базой БД_1 и таблицей Т_1) и сервер SQL_2 c базой БД_2.

На таблице Т_1 построил полнотекстовый индекс.
Сервер SQL_1 прилинковал к серверу SQL_2.

Пишу

USE [БД_2]
GO
SELECT ID
FROM [SQL_1 ].[БД_1 ].[dbo].[Т_1]
WHERE CONTAINS(*, '"Чин Дэ"')

Все работает


Создаю синоним на таблицу Т_1

USE [ONLINE]
GO
CREATE SYNONYM [dbo].[SYN] FOR [SQL_1 ].[БД_1 ].[dbo].[Т_1]
GO

Проверяю select * from [dbo].[SYN] - данные выбираются

Пробую построить поиск по синониму
USE [БД_2]
GO
SELECT ID
FROM [dbo].[SYN]
WHERE CONTAINS(*, '"Чин Дэ"') - выдает ошибку

Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
Сообщение 0, уровень 20, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.

В чем может быть моя ошибка и как избежать ее?
prog_new
Дата: 11.02.2013 12:06:41
неужели никто не сталкивался в такой проблемой?
Подскажите хоть где копать, в каком направлении?
Glory
Дата: 11.02.2013 12:11:37
prog_new
Подскажите хоть где копать, в каком направлении?

В направлении опубликования версий серверов
prog_new
Дата: 11.02.2013 12:33:04
prog_new
Добрый день.

Есть сервер SQL_1 ( с базой БД_1 и таблицей Т_1) и сервер SQL_2 c базой БД_2.

На таблице Т_1 построил полнотекстовый индекс.
Сервер SQL_1 прилинковал к серверу SQL_2.

Пишу

USE [БД_2]
GO
SELECT ID
FROM [SQL_1 ].[БД_1 ].[dbo].[Т_1]
WHERE CONTAINS(*, '"Чин Дэ"')

Все работает


Создаю синоним на таблицу Т_1

USE [ONLINE]
GO
CREATE SYNONYM [dbo].[SYN] FOR [SQL_1 ].[БД_1 ].[dbo].[Т_1]
GO

Проверяю select * from [dbo].[SYN] - данные выбираются

Пробую построить поиск по синониму
USE [БД_2]
GO
SELECT ID
FROM [dbo].[SYN]
WHERE CONTAINS(*, '"Чин Дэ"') - выдает ошибку

Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
Сообщение 0, уровень 20, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.

В чем может быть моя ошибка и как избежать ее?



Дополнение:
Если я укажу полный путь
USE [БД_2]
GO
SELECT ID
FROM [SQL_1].[БД_1].[dbo].[Т_1]
WHERE CONTAINS(*, '"Чин Дэ"')

то все работает!

Как тогда можно правильно настроить алиас?
prog_new
Дата: 11.02.2013 16:27:54
SQL 2005
alexey kirilenko
Дата: 12.02.2013 12:32:44
прилинковав сервер, неважно с оригинальным именем, или по alias
в запросе указывается полное название:
[server].[database].[scheme].[table]

что в логах какая именно ошибка?
prog_new
Дата: 15.02.2013 08:31:48
alexey kirilenko,

в том то и дело, что ошибок в логах не нашел ...
Или может не там искал? Где смотреть?

если нужно полностью указывать путь к таблице прилинкованного сервера, то какой смысл создавать синоним?
Я предполагал, что создав синоним, я смогу впоследствии, при изменении пути к таблице удаленного сервера, только менять синоним (не трогая вьюхи, хранимки и функции) сохранив при этом работоспособность ПО