Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Добрый день.

delete from [192.168.1.99].Archive.dbo.RA
where FK_R in 
(select FK_R
	from [192.168.1.99].Archive.dbo.RA as ra
	left join [192.168.1.99].Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)


данный запрос на прилинкованном сервере [192.168.1.99], выдает такую ошибку:
Поставщик OLE DB "SQLNCLI10" для связанного сервера "192.168.1.99" вернул сообщение "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Сообщение 7202, уровень 11, состояние 2, строка 1
Could not find server 'SQLSERVER2' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.


Такая ошибка выдается на одном прилинкованном сервере из 30....на других такой ошибки нет...
Помогите, разобраться, пожалуйста...
10 окт 17, 16:34    [20858222]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
При чем если
DELETE
заменить на
SELECT * 
, то ошибки нет
10 окт 17, 17:01    [20858341]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
r77,

автор
Could not find server 'SQLSERVER2' in sys.servers.
а это откуда? если на DELETE срабатывает, то возможно у вас триггер срабатывает и там кривой линк
10 окт 17, 17:03    [20858349]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
TaPaK,

триггеров нет на таблице
10 окт 17, 17:13    [20858378]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
r77,

на какой?
10 окт 17, 17:15    [20858383]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
TaPaK,

на обоих и [192.168.1.99].Archive.dbo.RA и [192.168.1.99].Archive.dbo.R - триггеров нет
10 окт 17, 17:16    [20858389]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
r77,

так ищите где Could not find server 'SQLSERVER2' in sys.servers.
10 окт 17, 17:22    [20858404]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
TaPaK,

что вы имеете в виду?
конечно у меня прилинкован сервер [192.168.1.99], а не SQLSERVER2

SQLSERVER2 - это имя сервера [192.168.1.99]
10 окт 17, 17:24    [20858414]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
TaPaK,

еще раз....если DELETE заменить на SELECT - то с линками получается все в порядке...чем DELETE не нравится линку?и в линке ли проблема?
10 окт 17, 17:26    [20858418]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
Владислав Колосов
Member

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

DTC настроен? Компьютер не переименовывали?
10 окт 17, 18:21    [20858581]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

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

этого я не знаю....может и переименовывали...
если сделать
UPDATE
,т.е.

UPDATE [192.168.1.99].Archive.dbo.RA SET FlagDel=1
where FK_R in 
(select FK_R
	from [192.168.1.99].Archive.dbo.RA as ra
	left join [192.168.1.99].Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)


а потом уже
DELETE [192.168.1.99].Archive.dbo.RA WHERE FlagDel=1

то все снова работает и никаких ошибок...чем так DELETE не нравится в конструкции
...where FK_R in ()
?
10 окт 17, 18:27    [20858593]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
Владислав Колосов
Member

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

может из-за вложенности...
delete ra where not exists (select * from r where ...)?
10 окт 17, 18:34    [20858604]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3671
r77
Владислав Колосов,

этого я не знаю....может и переименовывали...
если сделать
UPDATE
,т.е.

UPDATE [192.168.1.99].Archive.dbo.RA SET FlagDel=1
where FK_R in 
(select FK_R
	from [192.168.1.99].Archive.dbo.RA as ra
	left join [192.168.1.99].Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)


а потом уже
DELETE [192.168.1.99].Archive.dbo.RA WHERE FlagDel=1

то все снова работает и никаких ошибок...чем так DELETE не нравится в конструкции
...where FK_R in ()
?



Делете нравится, но вы его так и не показали.
Поищите по базе упоминания строки SERVER2
Где-то к нему есть обращение.
10 окт 17, 18:36    [20858611]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
r77
TaPaK,

еще раз....если DELETE заменить на SELECT - то с линками получается все в порядке...чем DELETE не нравится линку?и в линке ли проблема?

вот упоротый. Если вы уверены что нет триггеров, ищите большее извращение CONSTRAINT ON DELETE CASCADE
10 окт 17, 18:41    [20858615]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
TaPaK,

А без оскорблений никак? Не хотите отвечать - вас никто не заставляет!
10 окт 17, 20:38    [20858786]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Ролг Хупин,

Поискать по базе - что вы по этим подразумеваете? Искать где?
10 окт 17, 20:42    [20858789]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

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

Возможно вы правы... попробую, спасибо
10 окт 17, 20:44    [20858790]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33513
Блог
EXEC ('delete from Archive.dbo.RA
where FK_R in 
(select FK_R
	from Archive.dbo.RA as ra
	left join Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)') AT [192.168.1.99]
11 окт 17, 03:58    [20859505]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Критик
EXEC ('delete from Archive.dbo.RA
where FK_R in 
(select FK_R
	from Archive.dbo.RA as ra
	left join Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)') AT [192.168.1.99]


Спасибо Вам большое, добрый человек! Все работает в такой конструкции!
11 окт 17, 10:02    [20859723]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Критик
EXEC ('delete from Archive.dbo.RA
where FK_R in 
(select FK_R
	from Archive.dbo.RA as ra
	left join Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)') AT [192.168.1.99]


а если ip-адрес надо подставлять динамически? к примеру, этот кусок у меня входит в хранимую процедуру, которая выполняется в агенте по списку ip-адресов?
12 окт 17, 11:52    [20863476]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
o-o
Guest
слепить EXEC EXEC-a динамически
12 окт 17, 12:01    [20863518]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
r77
Критик
EXEC ('delete from Archive.dbo.RA
where FK_R in 
(select FK_R
	from Archive.dbo.RA as ra
	left join Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null)') AT [192.168.1.99]



а если ip-адрес надо подставлять динамически? к примеру, этот кусок у меня входит в хранимую процедуру, которая выполняется в агенте по списку ip-адресов?
Динамика в динамике
12 окт 17, 12:01    [20863519]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
alexeyvg
r77
пропущено...


а если ip-адрес надо подставлять динамически? к примеру, этот кусок у меня входит в хранимую процедуру, которая выполняется в агенте по списку ip-адресов?
Динамика в динамике



Спасибо, попробую...не приходилось так раньше оборачивать exec в exec...
12 окт 17, 12:03    [20863530]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
r77
alexeyvg
пропущено...
Динамика в динамике



Спасибо, попробую...не приходилось так раньше оборачивать exec в exec...
В принципе можно так:
declare @executesql nvarchar(1000) = N'[192.168.1.99].Archive.dbo.sp_executesql'
exec @executesql N'delete from Archive.dbo.RA
where FK_R in 
(select FK_R
	from Archive.dbo.RA as ra
	left join Archive.dbo.R rr on ra.FK_R=rr.pk
	where rr.RegistrNum is not null'

Только нужно у линкед-сервера разрешить RPC

Соответственно, сервер можно менять в имени.
12 окт 17, 12:37    [20863716]     Ответить | Цитировать Сообщить модератору
 Re: Произошли ошибки во время выполнения многошаговой операции OLE DB  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7662
По-моему OLE провайдер не обрабатывает запросы вроде delete ... from ...
Что-то припоминаю - один раз сталкивался с этим.
12 окт 17, 12:46    [20863761]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить