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

Откуда:
Сообщений: 41
Коллеги, добрый день!
Нужен совет.
Есть два SQL сервера например TEST и PROD. Зашел на PROD и там же в Management Studio подключил TEST без проблем.
В каждом из серверов есть базы например DB_TEST и DB_PROD.
Задача: скопировать информацию из базы DB_TEST (из view) в базу DB_PROD (в реальную таблицу).
Выполняю это как-то так:

SET IDENTITY_INSERT PROD.[DB_PROD].[dbo].ZZAttachments on

insert
into PROD.[DB_PROD].[dbo].[ZZAttachments]
([sysId],[sysVersion],[id],[source],[type],[fileName],[value],[indexable],[indexVersion],[parsedValue],[sysTenant],[mimeType])

select
[sysId],[sysVersion],[id],[source],[type],[fileName],[value],[indexable],[indexVersion],[parsedValue],[sysTenant],[mimeType]
from TEST.[DB_TEST].[dbo].ZZAttachments

go
SET IDENTITY_INSERT PROD.[DB_PROD].[dbo].ZZAttachments off

Получаю ошибки:

Msg 1088, Level 16, State 11, Line 1

Cannot find the object "PROD.DB_PROD.dbo.ZZAttachments" because it does not exist or you do not have permissions.

и

Msg 7202, Level 11, State 2, Line 1

Could not find server 'TEST' 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.

Вопрос: куда копать?
11 фев 15, 10:15    [17248261]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
Glory
Member

Откуда:
Сообщений: 104751
stas-alex
Вопрос: куда копать?

Читать внимательно в хелпе про SET IDENTITY_INSERT
Эта команда применима только для таблиц локального сервера.
11 фев 15, 10:18    [17248276]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
stas-alex
Member

Откуда:
Сообщений: 41
Glory, понял, большое спасибо!
11 фев 15, 10:30    [17248342]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
stas-alex
Member

Откуда:
Сообщений: 41
Glory,
а вот тоже помогло вроде:
EXEC sp_addlinkedserver @server='MyLinkedServer'
EXEC sp_addlinkedsrvlogin 'MyLinkedServer', 'false', NULL, 'MyUserName', 'MyPassword'
11 фев 15, 11:03    [17248579]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
Glory
Member

Откуда:
Сообщений: 104751
stas-alex
Glory,
а вот тоже помогло вроде:
EXEC sp_addlinkedserver @server='MyLinkedServer'
EXEC sp_addlinkedsrvlogin 'MyLinkedServer', 'false', NULL, 'MyUserName', 'MyPassword'

Помогло изменить синтаксис команды SET IDENTITY_INSERT ?
11 фев 15, 11:05    [17248592]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
stas-alex
Member

Откуда:
Сообщений: 41
Glory,
Это помогло выполнить указанный insert. Может я не уточнил - это 2012 SQL Server.
11 фев 15, 11:10    [17248630]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
Glory
Member

Откуда:
Сообщений: 104751
stas-alex
Это помогло выполнить указанный insert. Может я не уточнил - это 2012 SQL Server.

Этотнадо понимать, что вы пытались обратится к некому внешнему серверу TEST или PROD, не указав локальному, что такое собственно этот TEST или PROD ?
11 фев 15, 11:13    [17248648]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
stas-alex
Member

Откуда:
Сообщений: 41
Glory,
видимо в итоге - да. Но из твоего первого ответа я понял, что SET_IDENTITY в принципе не работает между серверами. Сейчас понимаю, что работает. В любом случае - спасибо!
11 фев 15, 11:15    [17248668]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в таблицу из view на другом SQL сервере  [new]
Glory
Member

Откуда:
Сообщений: 104751
stas-alex
что SET_IDENTITY в принципе не работает между серверами.

Не между серверами. А работает согласно документированному синтаксису.
11 фев 15, 11:17    [17248681]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить