Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с UPDATE (MS SQL 2000)
|
|||
|---|---|---|---|
|
#18+
Вопрос таков: У меня есть таблица ##Factures и Factures. Допустим в них присутствует запись с одлиноковым ID, но с разными значениями. Вот мне хочется из таблицы ##Factures запись с ID=@ID перенести в таблицу Factures с ID=@ID. Конечно, можно сперва удалить эту запись, а потом с помощью Insert Into Factures select top 1 * from ##Factures with ID=@ID. Но я не со всеи таблицами это могу стелать, т.к. есть связи по полям. Поэтому необходимо использовать именно UPDATE. Каким образом ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2001, 11:03 |
|
||
|
Помогите с UPDATE (MS SQL 2000)
|
|||
|---|---|---|---|
|
#18+
UPDATE Factures SET .... FROM Factures INNER JOIN ##Factures on ##Factures.ID = Factures.ID AND ##Factures.ID = @ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2001, 11:09 |
|
||
|
Помогите с UPDATE (MS SQL 2000)
|
|||
|---|---|---|---|
|
#18+
Не-е-е-е.... это не пойдет.... мне нужно типа * а не указывать постоянно поля. Как это можно сделать ????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2001, 11:24 |
|
||
|
Помогите с UPDATE (MS SQL 2000)
|
|||
|---|---|---|---|
|
#18+
В UPDATE нет опции * - все обновляемые поля перечислияются в SET. PS И тем более как вы себе предсавляете UPDATE mytable * - из каких полей подзапроса должны браться значения ? сервер сам должен сравнить их по именам с полями обновляемой таблицы ? или по порядковому номеру поля ? или типу данных ? а если в подзапросе больше/меньше полей, чем в обновляемой таблице ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2001, 11:39 |
|
||
|
Помогите с UPDATE (MS SQL 2000)
|
|||
|---|---|---|---|
|
#18+
UPDATE * Реализовать всеже можно. Вы можете написать к примеру пользовательскую скалярную функцию (они появились в MSSQL 2000), которая вернет вам строчку для UPDATE и выполнить ее с помощью Exec('SQL test') Что то типа: declare @sql varchar(1000) select @sql = dbo.GetUpdateStatement('Factures', '##Factures') exec(@sql) --- функция dbo.GetUpdateStatement принимает имя таблицы, выбирает имена полей для этой таблицы из системных данных и составляет из них сторочку, которая предполагалась (UPDATE Factures SET .... FROM Factures INNER JOIN ##Factures on ##Factures.ID = Factures.ID AND ##Factures.ID = @ID) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 12:29 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32018560&tid=1824677]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 444ms |

| 0 / 0 |
