Я пытаюсь использовать простую функцию в SQL Server 2005, и она генерирует ошибку.
CREATE FUNCTION [dbo].[fn_data_stat_cc_update]
(
@result char
)
RETURNS char(1)
AS
BEGIN
truncate table stg_data_cancer_center;
INSERT INTO stg_data_cancer_center(
mrn, pt_city, pt_state, pt_zip, pt_pri_dx, clinic, source
SELECT rtrim(ltrim(mrn)) as mrn,
pat_city, pat_state, zipcode, exact_icd9_code_pri_dx, 'clinic' =
case
when inst_id = 1 then 'CANRAD'
when inst_id = 2 then 'CANHAM'
else @result--''
end, 'MOSAIQ' as Source
from stg_mosaiq_patient;
RETURN LTRIM(RTRIM(@result))
END
Ошибки:
Procedure fn_data_stat_cc_update, Line 18
Invalid use of side-effecting or time-dependent operator in 'TRUNCATE TABLE' within a function.
Procedure fn_data_stat_cc_update, Line 25
Invalid use of side-effecting or time-dependent operator in 'INSERT' within a function.