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

Откуда:
Сообщений: 62
Добрый день!
Есть задача регулярно делать update таблицы А на основе результатов пересечения значений столбца таблицы А и ряда табличных функций tf1, tf2...tfn.
Типа
UPDATE A
 A.col1=tf1.col,
 A.col2=tf2.col,
 A.col3=tf3.col,
 ....................
 A.coln=tfn.col
FROM tf1, tf2...tfn. 

Увы, CROSS APLY, как в селекте, тут не работает.
MS SQL Server 2008 R2.
Не посоветуете, каким образом это лучше сделать без представлений?
18 июл 11, 18:05    [10991117]     Ответить | Цитировать Сообщить модератору
 Re: Update на основе табличных функций.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Отлично apply в апдейте работает.
18 июл 11, 18:08    [10991126]     Ответить | Цитировать Сообщить модератору
 Re: Update на основе табличных функций.  [new]
MichaelX
Member

Откуда:
Сообщений: 62
да?
можно пример...
18 июл 11, 18:53    [10991344]     Ответить | Цитировать Сообщить модератору
 Re: Update на основе табличных функций.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31950
MichaelX
да?
можно пример...
А у вас-то что не получилось? Просто вместо join пишите CROSS APPLY
18 июл 11, 18:58    [10991368]     Ответить | Цитировать Сообщить модератору
 Re: Update на основе табличных функций.  [new]
MichaelX
Member

Откуда:
Сообщений: 62
Вот код. Что-то не соображу, как писать
UPDATE FileTypeStats
	FileTypeStats.PDF = pdf.FileCount,		
	FROM FileTypeStats
	CROSS APPLY dbo.GetFileCountByType('*.pdf') pdf 	
	WHERE FileTypeStats.Server = pdf.Server
Этот вариант не работает.
18 июл 11, 19:14    [10991445]     Ответить | Цитировать Сообщить модератору
 Re: Update на основе табличных функций.  [new]
MichaelX
Member

Откуда:
Сообщений: 62
Разобрался... Спасибо за подсказки... совсем зарапортовался :-(
Видимо пора отдохнуть.
18 июл 11, 19:17    [10991455]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить