powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с UPDATE (MS SQL 2000)
5 сообщений из 5, страница 1 из 1
Помогите с UPDATE (MS SQL 2000)
    #32018560
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос таков:
У меня есть таблица ##Factures и Factures.
Допустим в них присутствует запись с одлиноковым ID, но с разными значениями.
Вот мне хочется из таблицы ##Factures запись с ID=@ID перенести в таблицу Factures с ID=@ID.

Конечно, можно сперва удалить эту запись, а потом с помощью Insert Into Factures select top 1 * from ##Factures with ID=@ID.
Но я не со всеи таблицами это могу стелать, т.к. есть связи по полям. Поэтому необходимо использовать именно UPDATE.

Каким образом ???
...
Рейтинг: 0 / 0
Помогите с UPDATE (MS SQL 2000)
    #32018561
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPDATE Factures SET .... FROM Factures INNER JOIN ##Factures on ##Factures.ID = Factures.ID AND ##Factures.ID = @ID
...
Рейтинг: 0 / 0
Помогите с UPDATE (MS SQL 2000)
    #32018563
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-е-е-е.... это не пойдет....
мне нужно типа * а не указывать постоянно поля. Как это можно сделать ?????
...
Рейтинг: 0 / 0
Помогите с UPDATE (MS SQL 2000)
    #32018566
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В UPDATE нет опции * - все обновляемые поля перечислияются в SET.



PS
И тем более как вы себе предсавляете UPDATE mytable * - из каких полей подзапроса должны браться значения ? сервер сам должен сравнить их по именам с полями обновляемой таблицы ? или по порядковому номеру поля ? или типу данных ? а если в подзапросе больше/меньше полей, чем в обновляемой таблице ?
...
Рейтинг: 0 / 0
Помогите с UPDATE (MS SQL 2000)
    #32018694
Rick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с UPDATE (MS SQL 2000)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]