для среды MSDE или выше
Code
use BN -- имя базы данных
set dateformat dmy
declare @sid_form int,@sid_to int,@object_id int
declare @start datetime, @stop datetime
select @object_id= -- поиск номера Объекта по его гаражному
(select objectid from dbo.FLEET_Object as o where o.ObjectGarNum like '%553%' and o.ObjectActive=1)
select @sid_form=10 -- номер датчика откуда копируем
, @sid_to=11 -- номер датика куда копируем
select @start='01/01/2010',@stop='14/01/2012' -- период за который переносим данные
if -- проверка что в новом датчика за данный период данные отсутствуют
exists (select top 1 idrec from dbo.FLEET_AnalogData
where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_to)
begin
print 'За копируемый период есть данные в датчике получателе!'
return -- закомментировать строку полностью, если нужно что бы данные удалились
delete from dbo.FLEET_AnalogData
where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_to
print 'данные удалены в датчике получателе'
end
insert into dbo.FLEET_AnalogData ([tele_time]
,[speed]
,[direction]
,[sens_value]
,[lat]
,[lon]
,[flags]
,[sens_num]
,[ObjectID]
,[device_sens_value])
select [tele_time]
,[speed]
,[direction]
,[sens_value]
,[lat]
,[lon]
,[flags]
,@sid_to
,[ObjectID]
,[device_sens_value]
FROM [dbo].[FLEET_AnalogData]
where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_form
delete from [dbo].[FLEET_AnalogData]
where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_form
где:
BN - имя базы данных КиберФлита
select @object_id= -- поиск номера Объекта по его гаражному
(select objectid from dbo.FLEET_Object as o where o.ObjectGarNum like '%553%' and o.ObjectActive=1)
553 искомая последовательность в гаражном номере
select @sid_form=10 -- номер датчика откуда копируем
, @sid_to=11 -- номер датика куда копируем
select @start='01/01/2010',@stop='14/01/2012' -- период за который переносим данные
с 01 января 2010 года по 14 января 2012 года
на выходе получается что все накопленные данные из датчика с №10 перенесены на датчик №11