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,
в том то и дело, что ошибок в логах не нашел ...
Или может не там искал? Где смотреть?
если нужно полностью указывать путь к таблице прилинкованного сервера, то какой смысл создавать синоним?
Я предполагал, что создав синоним, я смогу впоследствии, при изменении пути к таблице удаленного сервера, только менять синоним (не трогая вьюхи, хранимки и функции) сохранив при этом работоспособность ПО