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

Откуда:
Сообщений: 132
У меня проблема с addlinkedsrvlogin
Так все работает.
EXEC sp_addlinkedserver 
	@server = N'SW_DBF', 
	@provider = N'Microsoft.ACE.OLEDB.12.0', 
	@srvproduct = N'Ace',
	@datasrc = 'd:\Import_Data\dbf\',
	@provstr =N'DBASE IV'
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'SW_DBF',@useself=N'False' 
go
SELECT * FROM [SW_DBF]...[ta]


EROR:
Не удалось найти сервер " SW_DBF" в таблице sys.servers. Убедитесь, что имя сервера указано правильно. При необходимости выполните хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в таблицу sys.servers.


А так нет:
EXEC sp_addlinkedserver 
	@server = N'SW_DBF', 
	@provider = N'Microsoft.ACE.OLEDB.12.0', 
	@srvproduct = N'Ace',
	@datasrc = 'd:\Import_Data\dbf\',
	@provstr =N'DBASE IV'
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'SW_DBF',@useself=N'False' 
--go
SELECT * FROM [SW_DBF]...[ta]


Пишет что сервер еще не создан.
Мне нужен второй вариант. Мне нужно объявить переменные, а оператор GO их уничтожает.
11 фев 15, 12:32    [17249271]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Glory
Member

Откуда:
Сообщений: 104751
GO - это не оператор
GO - это разделитель пакетов в утилитах MS
11 фев 15, 12:34    [17249286]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Okmor
Member

Откуда:
Сообщений: 132
Glory,

Проблема, что без разделителя пакета запрос не работает.
Сервер не создался, а запрос уже хочет работать.
Как подождать создания сервера?
11 фев 15, 12:37    [17249308]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Okmor
Member

Откуда:
Сообщений: 132
Okmor,

Разделитель пакета убивает все переменные
11 фев 15, 12:38    [17249314]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Glory
Member

Откуда:
Сообщений: 104751
Okmor
Проблема, что без разделителя пакета запрос не работает.

Разумеется не работает. Потому что указанные команды _должны_ выполняться в разных пакетах

Okmor
Как подождать создания сервера?

Дело не в подождать. Выполнять команды в разных пакетах нужно.
11 фев 15, 12:39    [17249322]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Glory
Member

Откуда:
Сообщений: 104751
Okmor
Okmor,

Разделитель пакета убивает все переменные

Объявляейте переменные в том пакете, где они нужны
11 фев 15, 12:39    [17249331]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Okmor
Member

Откуда:
Сообщений: 132
Glory,
Засунул все в процедуру - заработало без GO
11 фев 15, 12:45    [17249371]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Okmor
Member

Откуда:
Сообщений: 132
Okmor,
Вышло так:

CREATE PROCEDURE Pr_importDBF
	 @Filial_id int ,
	 @datasrc_in varchar(254)
AS
BEGIN


IF EXISTS (SELECT * FROM master.dbo.sysservers WHERE srvname = 'SW_DBF')  
EXEC master.dbo.sp_dropserver @server=N'SW_DBF', @droplogins='droplogins'

EXEC sp_addlinkedserver 
	@server = N'SW_DBF', 
	@provider = N'Microsoft.ACE.OLEDB.12.0', 
	@srvproduct = N'Ace',
	@datasrc = @datasrc_in,
	@provstr =N'DBASE IV'
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'SW_DBF',@useself=N'False' 
SELECT * FROM [SW_DBF]...[ta]
END
11 фев 15, 12:47    [17249385]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Glory
Member

Откуда:
Сообщений: 104751
Okmor
Вышло так:

Это очень круто - дропать и создавать линкед сервер при каждом обращении
11 фев 15, 12:48    [17249400]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с addlinkedsrvlogin и оператором GO  [new]
Okmor
Member

Откуда:
Сообщений: 132
Glory,
Процедура одна а папок с ДБФами много.
Иногда меняются, иногда открыты эксклюзивно 1С
Обработка идет один раз в день - не критично.
11 фев 15, 12:52    [17249436]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить