2010-01-18 4 views
0

У меня есть имя таблицы Сверхурочные часы, которые имеют следующие столбцы От_ID, Shift_Date, Employee_ID, Часы.Автоматическая установка данных

Что мне нужно сделать, это вставить набор значений в эти таблицы в 1-ю дату каждого месяца автоматически.

например, мне нужно добавить значения ('1/1/2010', 12345,4.6) за январь, значений ('2/1/2010', 12345,4.6) за февраль и т. Д. Для Весь год.

Это дополнение должно быть сделано только для определенного списка сотрудников, а значение часов постоянно для каждого месяца. Я работаю над MS SQL Server 2000 в бэкэнд. и визуальная студия, Winforms on C sharp в передней части.

ответ

0

Вы можете создать список месяцев, используя общее табличное выражение. Используйте кросс-соединение для генерации строки для каждого сотрудника за каждый месяц и вставьте ее в таблицу часов.

Некоторые примеры кода, со столом переменных:

declare @hourtable table (
    ot_id int identity(1,1), 
    shift_date datetime, 
    employee_id int, 
    hours float) 

declare @employees table (
    employee_id int 
) 

insert into @employees select 1 
insert into @employees select 2 

;with months as (
    select cast('2009-01-01' as datetime) as month 
    union all 
    select dateadd(m,1,month) 
    from months 
    where month < '2009-12-01' 
) 
insert into @hourtable 
(shift_date, employee_id, hours) 
select m.month, e.employee_id, 1.23 
from months m 
cross join @employees e 

select * from @hourtable 
+0

CTE не поддерживаются SQL Server 2000 ... – RedFilter

1

Служба агента SQL Server может планировать свою работу (вставки новых записей), которые будут проводиться каждый месяц; это можно сделать полностью в MSSQL2000 и не нуждается в каком-либо интерфейсном программировании.

Смежные вопросы