Givens:
DevServerA
DevServerB\2K5
Проблема:
От DevServerA
, как я могу записать запрос, на который это ссылается DevServerB\2K5
?
Я попробовал образец, фиктивный запрос (выполняющий его от DevServerA
):
SELECT TOP 1 *
FROM DevServerB\2K5.master.sys.tables
И я получаю ошибку:
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '\.'.
Однако я знаю, что мой синтаксис почти правилен, начиная с наоборот работы (выполняющий этот запрос от DevServerB\2K5
):
SELECT TOP 1 *
FROM DevServerA.master.sys.tables
Помогите мне выяснить, как сослаться DevServerB\2K5
от DevServerA
.Спасибо.
В четырех частях имен, первая часть - это имя связанного сервера (т. Е. Объект метаданных), а не имя сервера (т. Е. Имя хоста). Таким образом, вы можете назвать свой связанный сервер FOO и указать ему на хост BAR или на экземпляр FOO \ BAR. И даже если вы назовете связанный серверный объект так, чтобы он содержал косую черту, вы все равно можете использовать его в имени, состоящем из нескольких частей, просто цитируя имя:
SELECT TOP 1 *
FROM [DevServerB\2K5].master.sys.tables
Попробуйте использовать квадратные скобки:
SELECT TOP 1 *
FROM [DevServerB\2K5].master.sys.tables
В SQL SERVER 2005 произошло следующее: { {1}} Запись:
SELECT TOP 1 *
FROM [DevServerB\2K5].master.sys.tables
изменена на
SELECT TOP 1 *
FROM DevServerB\2K5.master.sys.tables
системой SQL Server, но вы по-прежнему получаете сообщение об ошибке: Неправильный синтаксис рядом с '.'.
Я пробовал это на связанном сервере, названном двумя разными способами: '[DevServerB \ 2K5]' и 'DevServerB \ 2K5'
Есть ли у кого-нибудь другие идеи?
Спасибо, Алан Робертсон
ИСПРАВЛЕНИЕ добавил на следующий день: я был частично неправ. Когда кто-то пытается создать представление с помощью оператора SQL, такого как:
SELECT *
FROM [DevServerB\2K5].TestDB.dbo.tables
, тогда [и] удаляются, и невозможно сохранить представление, НО если кто-то просто пишет запрос, используя ту же строку SQL, тогда он работает правильно.
Я также смог выполнить такой оператор SQL, как:
INSERT INTO [DevServerB\2K5].TestDB.dbo.tables ( ... ) ...
Я могу делать то, что хочу, но было бы намного лучше, если бы я мог сохранить представление и использовать представление, которое затем будет использоваться для SELECT, ВСТАВИТЬ и ОБНОВИТЬ таблицу в базе данных [DevServerB \ 2K5] .TestDB с исходного сервера, на котором я попытался создать представление, но не смог из-за символа '\'.
-ASR-