SQL.RU
 client/server technologies
 
 Главная | Документация | Статьи | Книги | Форум | Опросы | Рассылка | Работа | Поиск | FAQ |

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

Откуда:
Сообщений: 90
Добрый день как бы организовать работу в базе MS SQL таким образом есть таблица А в нее попдают данные из программы с интервалом приблезительно в 5 скунд пачка данных составляет 25 записей, в результате даные повторяються и есть другая таблица В в не надо перекидывать данные из таблички А только без повторов, допустим с интервлом в 5 мин, помогите как организовать эту идею, возможно нужна хранимка, если да то подскажите как ее написать и запускать по времени в самой базе
22 мар 10, 11:52    [8512985] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
Паганель
Member

Откуда: Винница
Сообщений: 4247
А может в таблице A хранить данные без повторов, и тогда таблица В и не нужна ?
22 мар 10, 11:59    [8513037] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
brato4karik
Member

Откуда:
Сообщений: 90
нет получаеться это необходимость потомучто в эту таблицу попадают данные перехваченный с формы другой программы, это статистика выпуска продукции(производиталь не предусмотрел подробную статистику а она потребовалась) в результате был написан прехватчик данных который фильтрует данные но панельные компы на фасовочных апаратах слабы и получаются пропускают даные когда проверют средсвами клиента на повторы весь предыдущий набор даных, а в сутки набегает почти 35 000 , так вот идея скидывать все подряд с более длинным интервалом в одну таблицу и средствами базы ее фильтровать, а брать из окна вывода только последние не получаеться поскольку элемен вывода TListView как мы узнаем что он добавилстрочку ? события не отследить, вот и получаеться барть все через каждые 5 или побольше секунд кидать во временную сервер обработает и подчистит табличку и так покругу
22 мар 10, 12:09    [8513113] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
Glory
Member

Откуда: Estonia
Сообщений: 72684
brato4karik
нет получаеться

Не получаеится написать триггер, который не допустит добавления дубликатов что ли ?
22 мар 10, 12:12    [8513138] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 208
Select DISCTINC ... и настроить это через триггер(в вашем случае думаю не стоит) или автоматизировать через джоб. Зависит, от времени актульности данных в табл. B.
22 мар 10, 12:15    [8513162] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
Паганель
Member

Откуда: Винница
Сообщений: 4247
Рекомендую автору рассмотреть возможность использования опции IGNORE_DUP_KEY
22 мар 10, 12:17    [8513178] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
brato4karik
Member

Откуда:
Сообщений: 90
объясине пожалуйста поподробней если не трудно щас проуедура такая апендом добавляються строчки в базу , как напистаь тригер(ни разу не делал) соответственно как будет выглядеть ошибка если когда тригер найдет повтор, прога должна работать в фоне и за ней никто не следит ее даже не видят
22 мар 10, 12:18    [8513183] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 208
brato4karik,

CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF - это }
{ [ INSERT - вам над, я так понял на Insert,] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }

в тексте триггера уже проверять одинаковые записи.
Но триггер может уменьшить производительность системы
22 мар 10, 12:53    [8513449] Ответить | Цитировать    Сообщить модератору

 Re: Хранимая процедура на фильтрацию   [new]
ТАРАКАН
Member

Откуда:
Сообщений: 363
Всё это можно в процедуру и процедуру в джоб и каждую ночь выполнять.
declare @DeadDate datetime
select @DeadDate=DATEADD(day,-1,GetDate()) --минус один день от реальной даты

INSERT INTO Table_B
				(поле1,
				поле2,
				полеВремяВставки3,
				поле4)
			SELECT				
				полеДубликат1,
				поле2,
				полеВремяВставки3,
				поле4
			FROM
				Table_A
			where полеВремяВставки3<@DeadDate --первый раз условие комментим
			Group by поле1,	поле2,полеВремяВставки3,поле4 --убираем дубликаты
22 мар 10, 14:02    [8513979] Ответить | Цитировать    Сообщить модератору

Все форумы / Microsoft SQL Server Ответить
Generated time: 62ms.
Rambler's Top100 Powered by ActualForum 1.5.3 [s1] Copyright (c) Alex Sibilev 2000-2010