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

Откуда: Москва
Сообщений: 793
знатоки подскажите как скриптом вставить данные в linkserver, соответственно обойти "contains more than the maximum number ..."

insert into [LINK_SERVER].DB.dbo.TABLE 
select * from TABLE
25 фев 09, 15:31    [6859443]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Петр
знатоки подскажите как скриптом вставить данные в linkserver, соответственно обойти "contains more than the maximum number ..."

insert into [LINK_SERVER].DB.dbo.TABLE 
select * from TABLE

Перечислить поля как в insert так и в select
25 фев 09, 15:32    [6859457]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
INSERT
[ TOP ( expression ) [ PERCENT ] ]
[ INTO]
{ <object> |
...

<object> ::=
{
[ server_name . database_name . schema_name .
| database_name .[ schema_name ] .
| schema_name .
]
table_or_view_name
}

не совсем понятно, откуда у Вас это сообщение об ошибке в приведеннем скрипте. SELECT @@version?
25 фев 09, 15:35    [6859481]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Петр
знатоки подскажите как скриптом вставить данные в linkserver, соответственно обойти "contains more than the maximum number ..."

"Содержащий более чем максимальное количество" ЧЕГО?
Вы полагаете, что полей? А мне сдается, что идентификаторов описания таблицы (4)!
Вот это ему не нравится
...[LINK_SERVER].DB.dbo.TABLE ... 
Не любит он этого в линкед-серверах.
25 фев 09, 16:05    [6859732]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SQL2008
Не любит он этого в линкед-серверах.


И давно?!
25 фев 09, 16:07    [6859747]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
pkarklin
SQL2008
Не любит он этого в линкед-серверах.


И давно?!

Помнится давно уже.
The object name 'SERVER.BASE.dbo.Objects' contains more than the maximum number of prefixes. The maximum is 2.
25 фев 09, 16:15    [6859811]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
SQL2008
pkarklin
SQL2008
Не любит он этого в линкед-серверах.


И давно?!

Помнится давно уже.
The object name 'SERVER.BASE.dbo.Objects' contains more than the maximum number of prefixes. The maximum is 2.

Это сообщение относилось вовсе не к INSERT
25 фев 09, 16:19    [6859835]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Glory
Это сообщение относилось вовсе не к INSERT

А к чему же? Select -проходит без проблем.
25 фев 09, 16:20    [6859849]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SQL2008
pkarklin
SQL2008
Не любит он этого в линкед-серверах.


И давно?!

Помнится давно уже.
The object name 'SERVER.BASE.dbo.Objects' contains more than the maximum number of prefixes. The maximum is 2.


Это относится не к INSERT.
25 фев 09, 16:21    [6859854]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
SQL2008
Glory
Это сообщение относилось вовсе не к INSERT

А к чему же? Select -проходит без проблем.

К вызову udf, например
25 фев 09, 16:22    [6859859]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SQL2008
Glory
Это сообщение относилось вовсе не к INSERT

А к чему же? Select -проходит без проблем.


М.б. Вы приедете полный скрипт, на котором Вы получаете такую ошибку?
25 фев 09, 16:22    [6859862]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
pkarklin
М.б. Вы приедете полный скрипт, на котором Вы получаете такую ошибку?

Минуту...
25 фев 09, 16:23    [6859874]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
SQL2008
pkarklin
М.б. Вы приедете полный скрипт, на котором Вы получаете такую ошибку?

Минуту...

М-м-мда... Проверил на простой таблице, без пользовательских типов...
Сегодня явно не мой день. В другой раз буду поосторожнее с высказываниями.
Вопрос снят.
25 фев 09, 16:33    [6859938]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Петр
Member

Откуда: Москва
Сообщений: 793
Извиняюсь, что выключился из обсуждения....
действительно инсерт проходит. Оказывается ошибка возникает в операторе SET IDENTITY_INSERT
SET IDENTITY_INSERT [PRIEM\PRIEM].ALT15.dbo.reports_filters ON
INSERT INTO [PRIEM\PRIEM].ALT15.dbo.reports_filters(vcode, report_id, filter_id)
select vcode, report_id, filter_id from reports_filters
SET IDENTITY_INSERT [PRIEM\PRIEM].ALT15.dbo.reports_filters OFF

ошибка :
Число префиксов в имени объект "PRIEM\PRIEM.ALT15.dbo.reports_filters" превышает максимально допустимое значение. Максимальное значение равно 2.

версия:
Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
26 фев 09, 11:26    [6862763]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Внимательнее читайте сообщение. Оно относится к SET IDENTITY_INSERT
Потому что SET IDENTITY_INSERT разрешено только для локальных таблиц
26 фев 09, 11:28    [6862776]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Петр
Member

Откуда: Москва
Сообщений: 793
можно как то решить эту проблему?
26 фев 09, 11:33    [6862825]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Петр
можно как то решить эту проблему?

Никак. Такие действия должены запускаться с той стороны.
26 фев 09, 11:37    [6862860]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Петр
можно как то решить эту проблему?

Как вариант - выкладывать данные в промежуточную простую таблицу на линкед-сервере.
26 фев 09, 11:44    [6862923]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Петр
Member

Откуда: Москва
Сообщений: 793
спасибо за ответы... буду думать
26 фев 09, 12:26    [6863312]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Insert into linkserver?  [new]
OracleLover
Member

Откуда: Россия, Казань
Сообщений: 20899
Скажите пожалуйста у меня вот такое же сообщение возникает "contains more than the maximum number ..."

в скрипте когда я методом select into ... пытаюсь создать такую же таблицу на другом сервере(естественно ее там нет). Почему?
21 ноя 11, 17:04    [11633465]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
OracleLover
в скрипте когда я методом select into ... пытаюсь создать такую же таблицу на другом сервере(естественно ее там нет). Почему?

Наверное потому, что опять хелп недостаточно ясно для вас описывает возможности select into
21 ноя 11, 23:09    [11635130]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
guest2012
Guest
А у меня такое же сообщение при попытке создать таблицу на связанном сервере... В чем тут дело?

CREATE TABLE [192.168.10.3\ASTECTSQLSERVER].[of_search].[dbo].[a] (
[a] [int] NULL ,
[b] [int] NULL
)
24 янв 12, 17:46    [11962833]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
BBX
Member

Откуда: Днепропетровск
Сообщений: 22
EXEC( 'select * into ... from ... ') at LINK_SERVER

or

EXEC( 'create table ... ') at LINK_SERVER
25 янв 12, 16:38    [11969806]     Ответить | Цитировать Сообщить модератору
 Re: Insert into linkserver?  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest2012
А у меня такое же сообщение при попытке создать таблицу на связанном сервере... В чем тут дело?

Все в том же
В нежелании узнавать синтаксис команды CREATE TABLE

CREATE TABLE
[ database_name.[ owner ] . | owner. ] table_name
25 янв 12, 16:42    [11969848]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить