if exists (select name from sysobjects where name = 'td_ensespecialidades')
drop trigger td_ensespecialidades;
go
exec('create trigger td_ensespecialidades on ensEspecialidades for delete as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(255)
select @numrows = @@rowcount
if @numrows = 0
return
/* DeleteParentRestrict: Impossivel excluir pai "ensEspecialidades" pois existem registros na filha "ensGrades_Profissionais" */
if exists (select 1 from ensGrades_Profissionais t2, deleted t1
where t2.especialidade = t1.especialidade)
begin
select @errno = 50006,
@errmsg = ''Existem registros em "ensGrades_Profissionais". Impossível excluir "ensEspecialidades".''
goto error
end
/* DeleteParentCascade: apaga todas as filhas "ensPolos_Especialidades" da Pai "ensEspecialidades" */
set nocount on
delete ensPolos_Especialidades
from ensPolos_Especialidades t2, deleted t1
where t2.especialidade = t1.especialidade
set nocount off
/* DeleteParentCascade: apaga todas as filhas "ensEspecialidades_Profissionais" da Pai "ensEspecialidades" */
set nocount on
delete ensEspecialidades_Profissionais
from ensEspecialidades_Profissionais t2, deleted t1
where t2.especialidade = t1.especialidade
set nocount off
/* DeleteParentCascade: apaga todas as filhas "ensRegioesAdm_ValoresPadrao" da Pai "ensEspecialidades" */
set nocount on
delete ensRegioesAdm_ValoresPadrao
from ensRegioesAdm_ValoresPadrao t2, deleted t1
where t2.especialidade = t1.especialidade
set nocount off
/* DeleteParentSetNull: Exclusão de registro na pai "ensEspecialidades" deixa null a chave na filha "ensProfissionais" */
set nocount on
update ensProfissionais
set especialidade_principal = NULL
from ensProfissionais t2, deleted t1
where t2.especialidade_principal = t1.especialidade
set nocount off
return
error:
raiserror @errno @errmsg
rollback transaction
end
')
----------------------------------------
Microsoft SQL Server is a suite of relational database management system (RDBMS) products providing multi-user database access functionality.SQL Server is available in multiple versions, typically identified by release year, and versions are subdivided into editions to distinguish between product functionality. Component services include integration (SSIS), reporting (SSRS), analysis (SSAS), data quality, master data, T-SQL and performance tuning.
TRUSTED BY
ASKER