Я пытаюсь написать хранимую процедуру в SQL Server (2005), чтобы сделать что-то, что звучит просто, но на самом деле мне кажется сложнее, чем я думал.TSQL Stored Proc для копирования записей (с помощью твиста!)
У меня есть стол с 30 колонками и 50 000 строк.
Число записей фиксировано, но пользователи могут редактировать поля существующих записей.
Чтобы сохранить их, чтобы повторно использовать повторяющиеся данные, я хочу дать им возможность выбрать запись и указать диапазон идентификаторов, чтобы скопировать эти данные в.
В SP, который я пытаюсь записать, выберете 3 параметра: первичный ключ записи источника и нижний и верхний первичные ключи диапазона записей, в которые будут скопированы данные.
Очевидно, что PK записей назначения остаются неизменными.
Итак, я решил, что SP должен выполнить SELECT - чтобы получить все данные, которые нужно скопировать, и UPDATE - для записи данных в указанные записи назначения.
Я просто не знаю, как сохранить результаты SELECT, чтобы сложить их в UPDATE. Временная таблица не помогла бы - выбор из этого будет таким же, как выбор из таблицы!
Что мне нужно, это переменная, которая фактически одна запись, так что я могу пойти что-то вроде:
@tempRECORD = SELECT * FROM SOURCETABLE WHERE ID = @sourcePK
UPDATE SOURCETABLE
SET FIELD1 = @tempRECORD.FIELD1,
FIELD2 = @tempRECORD.FIELD2,
...
FIELD30 = @tempRECORD.FIELD30
WHERE ID >= @LOWER_id AND ID <= @UPPER_id
Но я не знаю, как, или если вы даже можете.
Я также открыт для любого другого умного способа, о котором я даже не думал!
Спасибо, ребята!
Блестящий! Большое спасибо. – Merlin 2010-11-30 02:11:36