Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как правильно использовать multi-part Identifier  [new]
sandro_az
Guest
Здравствуйте, участники.
При выполнении
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = test13.dbo.#New_account.AccountID
WHERE test13.dbo.ABC.AccountID = test13.dbo.#New_account.OldAccountID
Возникает ошибка
The multi-part identifier "test13.dbo.#New_account.OldAccountID" could not be bound.

Содержимое полей INT. Значения в полях есть.
28 окт 09, 13:02    [7849510]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
А как Вы создавали таблицу #New_account ?
28 окт 09, 13:06    [7849545]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
Влом регистрироваться
Guest
sandro_az,


RTFM Update Syntax

UPDATE A
SET
    Column1 = B.ColumnA
FROM
    A JOIN B ON ...
28 окт 09, 13:09    [7849567]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Таблицы dbo.#New_account нет во FROMе!
28 окт 09, 13:09    [7849571]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
sandro_az
Guest
Создавал так
CREATE TABLE #New_account (
	rank int identity not null, 
	AccountID int,
        ... Много полей ....
	OldAccountID int)
В таблице ABC есть поле AccountID, значение которого должно совпадать с OldAccountID из #New_account.
Его и надо менять на AccountID из #New_account.
28 окт 09, 13:10    [7849588]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = test13.dbo.#New_account.AccountID
FROM test13.dbo.#New_account
WHERE test13.dbo.ABC.AccountID = test13.dbo.#New_account.OldAccountID
28 окт 09, 13:12    [7849599]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
sandro_az
Guest
iap,

Спасибо!
28 окт 09, 13:13    [7849613]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31219
iap
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = test13.dbo.#New_account.AccountID
FROM test13.dbo.#New_account
WHERE test13.dbo.ABC.AccountID = test13.dbo.#New_account.OldAccountID
А не так?
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = #New_account.AccountID
FROM #New_account
WHERE test13.dbo.ABC.AccountID = #New_account.OldAccountID
28 окт 09, 14:19    [7850203]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
alexeyvg
iap
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = test13.dbo.#New_account.AccountID
FROM test13.dbo.#New_account
WHERE test13.dbo.ABC.AccountID = test13.dbo.#New_account.OldAccountID
А не так?
UPDATE test13.dbo.ABC
SET test13.dbo.ABC.AccountID = #New_account.AccountID
FROM #New_account
WHERE test13.dbo.ABC.AccountID = #New_account.OldAccountID
Да, конечно!
Но это всё равно, поскольку сервер за временной таблицей всегда лезет в tempdb.
При этом радостно сообщает:
СЕРВЕР
Database name 'test13' ignored, referencing object in tempdb.
28 окт 09, 14:25    [7850251]     Ответить | Цитировать Сообщить модератору
 Re: как правильно использовать multi-part Identifier  [new]
Monarh
Member

Откуда:
Сообщений: 26
UPDATE old 
SET old.AccountID = new.AccountID
FROM test13.dbo.ABC old 
        INNER JOIN #New_account new 
        ON old.AccountID = new.OldAccountID
28 окт 09, 17:42    [7851895]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить