Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помогите удалить данные  [new]
Zvez_DA
Member

Откуда: Москва
Сообщений: 68
Добрый день!!!Подскажите пожалуйста!
необходимо удалить данные из таблицы: hotelpr которые получаем в результате выполнения запроса:
SELECT     hotelpr.inc, hotelpr.hotel, hotelpr.htplace, hotelpr.datebeg, hotelpr.dateend, hotelpr.nights, hotelpr.complete, hotelpr.currency, hotelpr.spotype, 
                      hotelpr.spos, hotelpr.rqdatebeg, hotelpr.rqdateend, hotelpr.rnights, hotelpr.rhtplace, hotelpr.rmeal, hotelpr.adult, hotelpr.child, hotelpr.infant, 
                      hotelpr.discount, hotelpr.[percent], hotelpr.net, hotelpr.rspotype, hotelpr.rspos, hotelpr.minlentour, hotelpr.maxlentour, hotelpr.cure, hotelpr.room, 
                      hotelpr.remote, hotelpr.dateout, hotelpr.rroom, hotelpr.cen, hotel.inc AS Expr1, hotel.name, hotel.lname, hotel.partner
FROM         hotelpr LEFT OUTER JOIN
                      hotel ON hotelpr.hotel = hotel.inc
WHERE     (hotel.partner = '13648') AND (hotelpr.dateend <= '20081130')
ORDER BY hotelpr.dateend DESC
Заранее спасибо, понимаю, что вопрос ерундовый, но у меня немного не получается, а выполнить нужно это срочно...
11 сен 09, 14:37    [7647927]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
DELETE hotelpr
FROM         hotelpr LEFT OUTER JOIN
                      hotel ON hotelpr.hotel = hotel.inc
WHERE     (hotel.partner = '13648') AND (hotelpr.dateend <= '20081130')

11 сен 09, 14:53    [7648068]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Zvez_DA
Member

Откуда: Москва
Сообщений: 68
Эх, я конечно понимаю, что я ничего не знаю, но на это я и сама была способна)))
не удаляются данные, т.к. у таблицы есть ключ FK_htpartpr_hotelpr.
11 сен 09, 15:06    [7648176]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zvez_DA
Эх, я конечно понимаю, что я ничего не знаю, но на это я и сама была способна)))
не удаляются данные, т.к. у таблицы есть ключ FK_htpartpr_hotelpr.

И как вы себе представляете удаление записей из hotelpr, если у них есть зависимые записи в htpartpr ?
11 сен 09, 15:08    [7648192]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
Zvez_DA
не удаляются данные, т.к. у таблицы есть ключ FK_htpartpr_hotelpr.
Может быть вы все условия сразу расскажете, а не будете выдавливать по одному раз в час? Или все должны быть в курсе вашей схемы данных и сразу угадать, что у вас там форинкей висит?
11 сен 09, 15:09    [7648195]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
Zvez_DA
Эх, я конечно понимаю, что я ничего не знаю, но на это я и сама была способна)))
не удаляются данные, т.к. у таблицы есть ключ FK_htpartpr_hotelpr.


предупреждать же надо! (с)
11 сен 09, 15:11    [7648221]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Zvez_DA
Member

Откуда: Москва
Сообщений: 68
это единственная ошибка из-за чего не получается удалить...
11 сен 09, 15:19    [7648278]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2549
Zvez_DA
это единственная ошибка из-за чего не получается удалить...
какая же это ошибка?
11 сен 09, 15:21    [7648296]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zvez_DA
это единственная ошибка из-за чего не получается удалить...

Ну так вы же сами создали FK_htpartpr_hotelpr, чтобы сервер не разрешал такие деструктивные действия. И теперь удивляетесь ?
11 сен 09, 15:22    [7648306]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Zvez_DA
Member

Откуда: Москва
Сообщений: 68
Тогда задам такой вопрос, для того что бы просто проверить себя(не ругайтесь плизз, если что то не так, я еще просто только учусь):
есть таблица htpartpr у которой стоит ограничение FK_htpartpr_hotelpr
мне нужно удалить строки из таблицы hotelpr, естественно ограничение к таблице htpartpr мне не дает этого сделать, но удалить данные очень нужно, в ручную не могу так как их более 150 000.
Для этого я снимаю ограничение и удаляю данные, тогда следует ли мне удалить данные к таблице htpartpr?и как это правильно сделать?
(добавлю может это важно hotelpr.inc = htpartpr.hotelpr)
12 сен 09, 14:29    [7651000]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Zvez_DA
но удалить данные очень нужно, в ручную не могу так как их более 150 000.


в ручную Вы их тоже не удалите из-за того же самого ограничения FK... или что Вы имели ввиду под "в ручную"?

Zvez_DA
Для этого я снимаю ограничение и удаляю данные, тогда следует ли мне удалить данные к таблице htpartpr?и как это правильно сделать?
(добавлю может это важно hotelpr.inc = htpartpr.hotelpr)


Что удалять, а что нет это Вы спросите у того, кто Вам задание дал.

А при удалении данных сначала данные удалюятся или изменяются из/в таблицах "которые ссылаются", а уже потом из таблиц "на которые ссылаются", а FK при этом не удаляют, т.е. не "снимают ограничение".
12 сен 09, 14:47    [7651020]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Alexes
Member

Откуда:
Сообщений: 1100
Zvez_DA
Для этого я снимаю ограничение и удаляю данные, тогда следует ли мне удалить данные к таблице htpartpr?и как это правильно сделать?
Вы хотя бы объясните, что находится в таблицах hotelpr и htpartpr?
Zvez_DA
(добавлю может это важно hotelpr.inc = htpartpr.hotelpr)
Пока что неясно, что это значит.
12 сен 09, 14:50    [7651027]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Zvez_DA
Member

Откуда: Москва
Сообщений: 68
В самом начале темы написан запрос, на те данные которые мне необходимо удалить
12 сен 09, 15:08    [7651047]     Ответить | Цитировать Сообщить модератору
 Re: Помогите удалить данные  [new]
Alexes
Member

Откуда:
Сообщений: 1100
Дело в том, что для меня пока что это таблицы с неизвестно какими данными, поэтому я не могу Вам сказать, что следует удалять, а что - нет. Если бы Вы рассказали, каков смысл этих данных, тогда можно было бы ответить.
Лично я вижу несколько вариантов, что можно сделать с данными в htpartpr:
  • Удалить
  • Заменить hotelpr на другое значение (в том числе, возможно, NULL)
  • Не делать ничего (наиболее странный вариант)
  • 12 сен 09, 15:19    [7651058]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Zvez_DA
    Member

    Откуда: Москва
    Сообщений: 68
    Здравствуй еще раз!
    И опять возвращаюсь к этой же теме, попробую задать вопрос на своих же прошлых примерах:
    есть таблица hotelpr - у которой есть ключ на таблицу htpartpr
    Данные удалить, необходимо из таблицы hotelpr, но для этого сначало необходимо удалить данные из таблица htpartpr
    Делаю запрос в обойх таблицах (смысл один и тот же):
    WHERE     (hotel.partner = '13648') AND (hotelpr.dateend <= '20081130')
    
    и получаю разное кол-во данных. Как все таки лучше удалить данные?

    Спасибо, извиняюсь конечно, но я тока хочу научиться...
    13 окт 09, 18:53    [7780973]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    O_val
    Member

    Откуда:
    Сообщений: 157
    Как связаны связаны таблицы hotelpr и htpartpr?
    13 окт 09, 19:00    [7781008]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Zvez_DA
    Member

    Откуда: Москва
    Сообщений: 68
    вот этим ключом FK_htpartpr_hotelpr
    таблицы выглядят примерно так:
    CREATE TABLE [dbo].[hotelpr](
    	[inc] [int] IDENTITY(1,1) NOT NULL,
    	[hotel] [int] NOT NULL,
    	[htplace] [int] NOT NULL,
    	[datebeg] [smalldatetime] NULL,
    	[dateend] [smalldatetime] NULL,
    	[nights] [smallint] NULL,
    	[rqdatebeg] [smalldatetime] NULL,
    	[rqdateend] [smalldatetime] NULL,
    	[rnights] [smallint] NULL,
    	[rhtplace] [int] NULL CONSTRAINT [DF_hotelpr_rhtplace]  DEFAULT ((-2147483647)),
    	[minlentour] [smallint] NULL,
    	[maxlentour] [smallint] NULL,
    	[cure] [int] NOT NULL CONSTRAINT [DF_hotelpr_cure]  DEFAULT (1),
    	[room] [int] NULL,
    	[remote] [varchar](3) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL,
    	[dateout] [smalldatetime] NULL,
    	[rroom] [int] NULL CONSTRAINT [DF_hotelpr_rroom]  DEFAULT ((-2147483647)),
    	[cen] [smallint] NULL,

    другая (точная версия):
    CREATE TABLE [dbo].[htpartpr](
    	[Inc] [int] IDENTITY(1,1) NOT NULL,
    	[HotelPr] [int] NULL,
    	[Partner] [int] NULL,
    	[Price] [money] NULL,
    	[Net] [money] NULL,
    	[Currency] [int] NULL,
    	[Hotel] [int] NULL,
    	[CNet] [money] NULL,
    13 окт 09, 19:08    [7781030]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    O_val
    Member

    Откуда:
    Сообщений: 157
    Хорошо. И как же они связаны?
    13 окт 09, 19:11    [7781041]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Senya_L
    Member

    Откуда: Москва
    Сообщений: 5381
    Zvez_DA,

    Вас здесь только путают почем зря. ;)
    В свойствах ключа FK_htpartpr_hotelpr в "Спецификации INSERT и UPDATE" поменяйте свойство "Правило удаления" на значение "Каскадно" и будет Вам счастье.
    13 окт 09, 20:36    [7781267]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    step_ks
    Member

    Откуда:
    Сообщений: 936
    Senya_L
    Zvez_DA,

    Вас здесь только путают почем зря. ;)
    В свойствах ключа FK_htpartpr_hotelpr в "Спецификации INSERT и UPDATE" поменяйте свойство "Правило удаления" на значение "Каскадно" и будет Вам счастье.

    А потом вдруг окажется, что вместе с записью справочника пришлепнулись все документы :)
    13 окт 09, 21:09    [7781373]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Senya_L
    Member

    Откуда: Москва
    Сообщений: 5381
    step_ks
    Senya_L
    Zvez_DA,

    Вас здесь только путают почем зря. ;)
    В свойствах ключа FK_htpartpr_hotelpr в "Спецификации INSERT и UPDATE" поменяйте свойство "Правило удаления" на значение "Каскадно" и будет Вам счастье.

    А потом вдруг окажется, что вместе с записью справочника пришлепнулись все документы :)
    А думаете смайлик я поставил просто от того, что я очень веселый человек? Если доверяют ковыряться в БД работнику такой квалификации, то работодателю можно сказать только одно - ССЗБ.
    13 окт 09, 21:33    [7781433]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Zvez_DA
    Member

    Откуда: Москва
    Сообщений: 68
    спасибо, куча лишних слов и ничего по делу(((такое ощущение, что все читают только выборочно сообщения и задают вопросы(
    и еще раз объясняю я учусь, у меня есть локальная база с которой я работаю и если с ней что то случится нет ничего страшного, можно просто взять ее и удалить.
    наверно нет смысла тут спрашивать...
    14 окт 09, 10:26    [7782740]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Glory
    Member

    Откуда:
    Сообщений: 104760
    Zvez_DA
    спасибо, куча лишних слов и ничего по делу(((такое ощущение, что все читают только выборочно сообщения и задают вопросы(

    А вы не предполагали, что это вызвано вашей "постановкой" задачи ?
    14 окт 09, 10:28    [7782747]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Zvez_DA
    Member

    Откуда: Москва
    Сообщений: 68
    CREATE TABLE [dbo].[hotelpr](
    	[inc] [int] IDENTITY(1,1) NOT NULL,
    	[hotel] [int] NOT NULL,
    	[htplace] [int] NOT NULL,
    	[datebeg] [smalldatetime] NULL,
    	[dateend] [smalldatetime] NULL,
    	[nights] [smallint] NULL,
    	[rqdatebeg] [smalldatetime] NULL,
    	[rqdateend] [smalldatetime] NULL,
    	[rhtplace] [int] NULL CONSTRAINT [DF_hotelpr_rhtplace]  DEFAULT ((-2147483647)),
    	[minlentour] [smallint] NULL,
    	[maxlentour] [smallint] NULL,
    	[cure] [int] NOT NULL CONSTRAINT [DF_hotelpr_cure]  DEFAULT (1),
    	[room] [int] NULL,
    	[remote] [varchar](3) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL,
    	[dateout] [smalldatetime] NULL,
    	[rroom] [int] NULL CONSTRAINT [DF_hotelpr_rroom]  DEFAULT ((-2147483647)),
    	[cen] [smallint] NULL,

    CREATE TABLE [dbo].[htpartpr](
    	[Inc] [int] IDENTITY(1,1) NOT NULL,
    	[HotelPr] [int] NULL,
    	[Partner] [int] NULL,
    	[Price] [money] NULL,
    	[Net] [money] NULL,
    	[Currency] [int] NULL,
    	[Hotel] [int] NULL,
    	[CNet] [money] NULL,
    14 окт 09, 10:31    [7782772]     Ответить | Цитировать Сообщить модератору
     Re: Помогите удалить данные  [new]
    Zvez_DA
    Member

    Откуда: Москва
    Сообщений: 68
    ALTER TABLE [dbo].[htpartpr] WITH NOCHECK ADD CONSTRAINT [FK_htpartpr_hotelpr] FOREIGN KEY([HotelPr])
    REFERENCES [dbo].[hotelpr] ([inc])
    14 окт 09, 10:34    [7782807]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / Microsoft SQL Server Ответить