Как сослаться на SQL-сервер с обратной косой чертой (\) на ее имя?

Givens:

  • Один SQL Server называют: 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.Спасибо.

14
задан Bill Paetzke 9 April 2010 в 22:53
поделиться

3 ответа

В четырех частях имен, первая часть - это имя связанного сервера (т. Е. Объект метаданных), а не имя сервера (т. Е. Имя хоста). Таким образом, вы можете назвать свой связанный сервер FOO и указать ему на хост BAR или на экземпляр FOO \ BAR. И даже если вы назовете связанный серверный объект так, чтобы он содержал косую черту, вы все равно можете использовать его в имени, состоящем из нескольких частей, просто цитируя имя:

SELECT TOP 1 *  
FROM [DevServerB\2K5].master.sys.tables
18
ответ дан 1 December 2019 в 12:13
поделиться

Попробуйте использовать квадратные скобки:

SELECT TOP 1 *  
FROM [DevServerB\2K5].master.sys.tables
6
ответ дан 1 December 2019 в 12:13
поделиться

В 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-

0
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: