Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Динамическое имя сервера  [new]
Yra
Member

Откуда:
Сообщений: 68
Здравствуйте!
есть запрос на связаный сервер с именем [VM-PC\SQLEXPRESS]
-- удаляем FK FK_Users_Test
EXEC ( 'ALTER TABLE [work].[dbo].[Users] DROP CONSTRAINT FK_Users_Test;') AT [VM-PC\SQLEXPRESS];

-- вставляем в [Users] на АРМ "Контролер" все записи из  [Users] с АРМ "Оператор"	
INSERT [VM-PC\SQLEXPRESS].[work].[dbo].[Users] ([User]
      ,[Password]
      ,[JobTitle]
      ,[Status]) SELECT [User]
      ,[Password]
      ,[JobTitle]
      ,[Status] FROM [work].[dbo].[Users];


Как передавать имя сервера через параметр, чтобы его динамически менять из приложения при вызове данной ХП?
Пытаюсь написать
DECLARE @NetServerName VARCHAR(50);
---SELECT возвращает имя связанного сервера
/**/set @NetServerName = select [name] from [sys].[servers] where [server_id] = 1

Но пишет ошибку "Incorrect syntax near the keyword 'select'." Как узнать имя сервера и вставить его в запрос выше?
27 мар 15, 16:25    [17441449]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
o-o
Guest
Yra,

идея -- бурда, а синтаксис неправильный:
DECLARE @NetServerName VARCHAR(50);
---SELECT возвращает имя связанного сервера
/**/set @NetServerName = (select [name] from [sys].[servers] where [server_id] = 1)
27 мар 15, 16:39    [17441556]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
Yra
Member

Откуда:
Сообщений: 68
Ну так подскажите. направьте, поясните.....
27 мар 15, 17:05    [17441747]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
o-o
Guest
Yra
Ну так подскажите. направьте, поясните.....

еще почитать за вас, да?
и в студии набрать тоже?
вы без заполнения своей переменной, если влом прочесть синтаксис EXECUTE,
попробуйте выполнить
DECLARE @NetServerName VARCHAR(50);
EXEC ( 'ALTER TABLE [work].[dbo].[Users] DROP CONSTRAINT FK_Users_Test;') AT @NetServerName

тоже катит как способ проверки правильности конструкции,
умная студия выдаст всплывающую подсказку, чего там ожидает, в виде Expecting ID, or QUOTED_ID,
но еще лучше это проверять до затевания огорода.
+ кто вообще сказал, что те сервера configured for RPC.

а вообще хорошая позиция: Дайте то, Подайте это, Сделайте наоборот!
может, у меня свое не работает, и чтением тут делу не поможешь,
а на ходу исправишь кому-то на форуме в порядке "смены рода деятельности",
так еще и получишь за "отсутствие объяснения" того, что в хэлпе написано
27 мар 15, 19:04    [17442312]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Возникают сомнения вообще в корректности такой архитектуры. Если решаются задача межсерверного общения, то причем здесь клиент? При чем вообще динамические переключение линкед серверов?
28 мар 15, 15:35    [17444511]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
Yra,

попробуйте
incert into OPENQUERY ( linked_server ,'query' )...
29 мар 15, 07:24    [17446090]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
Yra
Member

Откуда:
Сообщений: 68
Владислав Колосов

Смысл в том, что написано порядка 15 хранимых процедур. И при разворачивании системы на другой машине (может будет другое имя SQL server), все бы сводилось к созданию связанного SQL server, а не к редактитрованию всех 15 ХП, где нужно было бы откорректировать имя связанного SQL server...
31 мар 15, 08:16    [17452642]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя сервера  [new]
invm
Member

Откуда: Москва
Сообщений: 9397
Yra
все бы сводилось к созданию связанного SQL server, а не к редактитрованию всех 15 ХП, где нужно было бы откорректировать имя связанного SQL server...
CREATE SYNONYM (Transact-SQL)
31 мар 15, 09:03    [17452757]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить