Как мне обновить таблицу связанного сервера, где требуется «псевдоним», в SQL Server 2000? - PullRequest
2 голосов
/ 07 мая 2010

В SQL Server 2005 имя таблицы может использоваться для определения таблицы, к которой вы обращаетесь:

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE tablename.ID=u.ID

В SQL Server 2000 это приводит к

Сервер: Msg 107, Уровень 16, Состояние 2
Префикс столбца 'имя таблицы' не совпадает с именем таблицы или псевдонимом, используемым в запросе.

Попытка

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE LinkedServer.database.user.tablename.ID=u.ID

результатыв

Сервер: Msg 117, уровень 15, состояние 2
Имя числа «LinkedServer.database.user.tablename» содержит больше максимального числа префиксов.Максимальное значение - 3.

И, конечно,

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE ID=u.ID

приводит к

Сервер: Msg 209, Уровень 16, Состояние 1
Неоднозначное имя столбца 'ID'.

(На самом деле поиск по "Числовому имени содержит больше максимального числа префиксов. Максимальное значение - 3." Я нашел ответ, но я "Я набрал этот вопрос, и я собираюсь опубликовать его! :-))

Ответы [ 2 ]

6 голосов
/ 07 мая 2010

Как насчет:

UPDATE ls
SET ls.val=u.val
FROM LinkedServer.database.user.tablename ls
    JOIN localtable u ON ls.ID = u.ID
0 голосов
/ 10 января 2015

Да, работает нормально.

Я использовал это. Вы можете попробовать это ..

select * from [FIRSTLINK].job.dbo.student

select * from openquery ([FIRSTLINK],'exec job.dbo.sp1')

select * from openquery ([FIRSTLINK],'insert into student values (5,'mohit','uttam nagar','New delhi')job.dbo.sp1')

INSERT INTO firstlink.job.dbo.student VALUES (6,'Public Relations', 'Executive General and Administration','delhi');

INSERT OPENQUERY (firstlink, 'SELECT * FROM job.dbo.student') VALUES (9,'prabhakar','Environmental Impact', 'Engineering');

UPDATE firstlink.job.dbo.student SET student.name='rousan' WHERE student.ID=4

У меня есть все вставки, обновления и выбор с помощью сервера SQL Linked.

...