IF COL_LENGTH('dbo.asr_loc_mast', 'area_id') IS NULL
|
BEGIN
|
ALTER TABLE [dbo].[asr_loc_mast]
|
ADD [area_id] INT NULL;
|
END;
|
|
EXEC sys.sp_executesql N'
|
UPDATE [dbo].[asr_loc_mast]
|
SET [area_id] =
|
CASE
|
WHEN [crn_no] BETWEEN 1 AND 6 THEN 1
|
WHEN [crn_no] BETWEEN 7 AND 18 THEN 2
|
WHEN [crn_no] BETWEEN 19 AND 28 THEN 3
|
ELSE [area_id]
|
END
|
WHERE [area_id] IS NULL
|
AND [crn_no] BETWEEN 1 AND 28;
|
';
|
|
IF COL_LENGTH('dbo.asr_wrk_mast', 'area_id') IS NULL
|
BEGIN
|
ALTER TABLE [dbo].[asr_wrk_mast]
|
ADD [area_id] INT NULL;
|
END;
|
|
EXEC sys.sp_executesql N'
|
UPDATE m
|
SET area_id = CASE
|
WHEN m.io_type >= 100 THEN COALESCE(source_loc.area_id, target_loc.area_id)
|
ELSE COALESCE(target_loc.area_id, source_loc.area_id)
|
END
|
FROM dbo.asr_wrk_mast m
|
LEFT JOIN dbo.asr_loc_mast target_loc ON target_loc.loc_no = m.loc_no
|
LEFT JOIN dbo.asr_loc_mast source_loc ON source_loc.loc_no = m.source_loc_no
|
WHERE m.area_id IS NULL
|
AND CASE
|
WHEN m.io_type >= 100 THEN COALESCE(source_loc.area_id, target_loc.area_id)
|
ELSE COALESCE(target_loc.area_id, source_loc.area_id)
|
END IS NOT NULL;
|
';
|
|
IF OBJECT_ID('dbo.asr_wrk_mast_log', 'U') IS NOT NULL
|
BEGIN
|
IF COL_LENGTH('dbo.asr_wrk_mast_log', 'area_id') IS NULL
|
BEGIN
|
ALTER TABLE [dbo].[asr_wrk_mast_log]
|
ADD [area_id] INT NULL;
|
END;
|
|
EXEC sys.sp_executesql N'
|
UPDATE m
|
SET area_id = CASE
|
WHEN m.io_type >= 100 THEN COALESCE(source_loc.area_id, target_loc.area_id)
|
ELSE COALESCE(target_loc.area_id, source_loc.area_id)
|
END
|
FROM dbo.asr_wrk_mast_log m
|
LEFT JOIN dbo.asr_loc_mast target_loc ON target_loc.loc_no = m.loc_no
|
LEFT JOIN dbo.asr_loc_mast source_loc ON source_loc.loc_no = m.source_loc_no
|
WHERE m.area_id IS NULL
|
AND CASE
|
WHEN m.io_type >= 100 THEN COALESCE(source_loc.area_id, target_loc.area_id)
|
ELSE COALESCE(target_loc.area_id, source_loc.area_id)
|
END IS NOT NULL;
|
';
|
END;
|