Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

Коллеги! Помогите написать процедурку обновления....   Найти похожие ветки 

 
BCPP_Builder_Dev ©   (2002-10-09 15:26) [0]

Собственно имеется 2 таблицы:
MassMedia в которой есть текстовое "PubHouse";
и MassMediaPubHouses - с двумя полями:
MMPHID - integer
PubHousename - varchar.

Надобно написать процедурку осуществляющую нормализацию, т.е. в Massmedia.Phouse должно быть значение ключа из MassMediaPubHouses.

Так как раньше никогда не делал, возникли сложности с использованием переменных, как собственно передать переменные из выборки курсора дальше для обновления данных?

CREATE PROCEDURE [dbo].[sp_GENERAL_UPDATER] AS

DECLARE @PH INT
DECLARE @PHN VARCHAR
DECLARE MMPH CURSOR FOR

SELECT * FROM MassMediaPubHouses

OPEN MMPH

FETCH NEXT FROM MMPH


WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @PH = MMPH.MMPHID
SET @PHN = MMPH.PubHouseName
UPDATE MassMedia SET PubHouse = @PH WHERE PubHouse = @PHN
FETCH NEXT FROM MMPH
END

CLOSE MMPH
DEALLOCATE MMPH
GO


 
BCPP_Builder_Dev ©   (2002-10-09 17:23) [1]

Ну неужели никто не поможет????!!!!


 
still ©   (2002-10-09 17:28) [2]

еще раз другими словами объясни, плз


 
BCPP_Builder_Dev ©   (2002-10-09 17:34) [3]

Таблицу засосал из екселя, ес-но там все поля текстовые. Разбиваю структуру на СУБД.
Делаю таблицу типа: список возможных значений с двумя полями: ключ и текстовое поле с названием.
а в основной табличке делаю ключ вместо текстового поля. Разумеется перегон всего этого дела требует усилий (не руками же енто делать).

В моем случае основная таблица А, в ней есть поле х типа текст
Дочерняя таблица-свойство х - В, в ней ключ К и название свойства Н.

CREATE PROCEDURE [dbo].[sp_GENERAL_UPDATER] AS

DECLARE @PH INT
DECLARE @PHN VARCHAR
DECLARE MMPH CURSOR FOR

SELECT * FROM В

OPEN MMPH

FETCH NEXT FROM MMPH


WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @PH = MMPH.MMPHID
SET @PHN = MMPH.PubHouseName
UPDATE А SET х = @PH WHERE х = @PHN
FETCH NEXT FROM MMPH
END

CLOSE MMPH
DEALLOCATE MMPH
GO



 
Best Before 2024   (2002-10-09 17:36) [4]



CREATE PROCEDURE [dbo].[sp_GENERAL_UPDATER] AS

DECLARE @VAR1 INT
DECLARE @VAR2 VARCHAR
DECLARE MMPH CURSOR FOR
SELECT FVAR1, FVAR2 FROM MassMediaPubHousesOPEN MMPH

FETCH NEXT FROM MMPH INTO @VAR1, @VAR2

WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE MassMedia SET PubHouse = @PH WHERE PubHouse = @PHN
FETCH NEXT FROM MMPH INTO @VAR1, @VAR2
END

CLOSE MMPH
DEALLOCATE MMPH
GO


 
wicked ©   (2002-10-09 20:27) [5]

это что, каждый раз так надо делать?....
если это одноразовая акция, то можно обойтись парой запросов... только структуру таблиц приведи хоть немного...



Страницы: 1 вся ветка

Текущий архив: 2002.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-101159
xmag
2002-10-10 23:58
2002.10.31
MSAccess + DELPHI + ADO и SQL запрос по дате.


7-101554
chernoruk
2002-08-18 14:20
2002.10.31
Проблемка с LPT и CreateFile


4-101561
Константин
2002-09-15 00:11
2002.10.31
Как получить по хэндлу адрес объекта в памяти?


1-101195
LexusU
2002-10-21 14:33
2002.10.31
Как сделать полупрозрачные формы в win98?(по подобиб alphablend )


1-101362
brestmarket
2002-10-20 11:52
2002.10.31
Как лучше определить что ссылка в WebBrowser - путь к каталогу ?