Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
4-101592
fLANkeR
2002-09-20 19:29
2002.10.31
Как программно сделать LogOUT в Win2K


3-101116
Vagrant
2002-10-10 04:45
2002.10.31
FIBDataSet and BLOB


14-101528
Oleg_Gashev
2002-10-14 01:22
2002.10.31
Ошибка в конфигурации РНР?


1-101283
Дмитрий Астрохов
2002-10-22 15:55
2002.10.31
Просьба.


1-101349
Eugene_post
2002-10-20 22:34
2002.10.31
Перехват нажатия Enter в TEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский