У меня есть таблица, которую я использую для хранения данных. Таблица заполняется, когда пользователь нажимает на сохранение в сетке, которая находится в моей клиентской системе. Здесь я сделал очень простой пример. Таблица называется TableA. На экране клиента показывает пять строк и поэтому, когда пользователь щелкает сохранить переводится на пять вставок:Как я могу обновить данные в базовой таблице SQL на основе данных в другой таблице?
CREATE TABLE [dbo].[TableA]
(
[IdA] INT IDENTITY (1, 1) NOT NULL,
[valueA] CHAR(10) NOT NULL
)
INSERT INTO TableA VALUES (1, 'one')
INSERT INTO TableA VALUES (2, 'two')
INSERT INTO TableA VALUES (3, 'three')
INSERT INTO TableA VALUES (4, 'four')
INSERT INTO TableA VALUES (5, 'five')
GO
Теперь мой пользователь на клиенте изменяет данные в сетке, и я прочитал последние данные в временную таблицу. Здесь я имитировать, что с TableB
CREATE TABLE [dbo].[TableB]
(
[IdB] INT IDENTITY (1, 1) NOT NULL,
[valueB] CHAR(10) NOT NULL
)
INSERT INTO TableB VALUES (1, 'one')
INSERT INTO TableB VALUES (3, 'newThree')
INSERT INTO TableB VALUES (4, 'newFour')
INSERT INTO TableB VALUES (5, 'five')
GO
Может кто-то подскажет, как я могу использовать новые данные в TableB для обновления строки в TableA. В этом случае мне нужно будет удалить строку с идентификатором 2 и обновить строки с идентификаторами 4 и 5. Каждый раз, когда это может быть другим. Например, пользователь может добавлять строки, поэтому мне нужно будет добавить новую строку в таблицу. Обратите внимание, что все это происходит внутри хранимой процедуры. Я действительно нуждаюсь в некоторых советах по различным способам, с которыми я мог бы присоединиться к TableA и TableB, чтобы каким-то образом создать вставку, удалить и обновить TableA, чтобы получить ее до последнего состояния.
Примечание для этого конкретного примера, что мне нужно, чтобы в конечном итоге является:
[The 'UPDATE 'часть была спрошена и ответила много, много и много раз на этом сайте] (http://stackoverflow.com/questions/1604091/update-a-table-using-join-in-sql-server/1604212#1604212) , –