131 lines
5.0 KiB
MySQL
131 lines
5.0 KiB
MySQL
|
|
|
|||
|
|
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD>鴥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
exec ('
|
|||
|
|
if exists(select * from sys.triggers where name=''trigger_OrgAuthority_update'')
|
|||
|
|
--ɾ<EFBFBD><EFBFBD>DML<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
begin
|
|||
|
|
drop trigger trigger_OrgAuthority_update;
|
|||
|
|
end
|
|||
|
|
')
|
|||
|
|
exec ('
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD> ------------------------<EFBFBD><EFBFBD>
|
|||
|
|
create trigger trigger_OrgAuthority_update
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>on OrgAuthority
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>for update
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>as
|
|||
|
|
declare @AuthotypeIdnew int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>µ<EFBFBD>ID
|
|||
|
|
declare @AuthotypeIdold int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Delete<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ɵ<EFBFBD>ID
|
|||
|
|
declare @AuthoId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼Ȩ<EFBFBD><EFBFBD>ID
|
|||
|
|
declare @OrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
declare @HotelId int;
|
|||
|
|
select @AuthotypeIdold = AuthotypeId
|
|||
|
|
from deleted;
|
|||
|
|
select @AuthotypeIdnew = AuthotypeId,@AuthoId = AuthorityId,@OrgId = OrgId,@HotelId = HotelId
|
|||
|
|
from inserted;
|
|||
|
|
if update(AuthotypeId)
|
|||
|
|
begin
|
|||
|
|
update UserAuthoes set AuthotypeId = @AuthotypeIdnew where HotelId = @HotelId and AuthorityId = @AuthoId and AuthotypeId = @AuthotypeIdold and UserId in (select UserId from OrgUsers where OrgId = @OrgId)
|
|||
|
|
end;
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
if exists(select * from sys.triggers where name=''trigger_OrgAuthority_del'')
|
|||
|
|
begin
|
|||
|
|
drop trigger trigger_OrgAuthority_del;
|
|||
|
|
end
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------<EFBFBD><EFBFBD>
|
|||
|
|
create trigger trigger_OrgAuthority_del
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>on OrgAuthority
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>for delete
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>as
|
|||
|
|
declare @AuthotypeIdold int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Delete<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ɵ<EFBFBD>ID
|
|||
|
|
declare @AuthoId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼Ȩ<EFBFBD><EFBFBD>ID
|
|||
|
|
declare @OrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
declare @HotelId int;
|
|||
|
|
select @AuthotypeIdold = AuthotypeId, @AuthoId = AuthorityId,@OrgId = OrgId,@HotelId = HotelId
|
|||
|
|
from deleted;
|
|||
|
|
delete UserAuthoes where HotelId = @HotelId and AuthorityId = @AuthoId and AuthotypeId = @AuthotypeIdold and UserId in (select UserId from OrgUsers where OrgId = @OrgId)
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD> ------------------------<EFBFBD><EFBFBD>
|
|||
|
|
if exists(select * from sys.triggers where name=''trigger_OrgAuthority_Insert'')
|
|||
|
|
begin
|
|||
|
|
drop trigger trigger_OrgAuthority_Insert;
|
|||
|
|
end
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
create trigger trigger_OrgAuthority_Insert --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------------------- <20>û<EFBFBD>δ<EFBFBD><CEB4><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѹ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>on OrgAuthority
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>for insert
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>as
|
|||
|
|
declare @AuthotypeIdnew int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>µ<EFBFBD>ID
|
|||
|
|
declare @AuthoId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼Ȩ<EFBFBD><EFBFBD>ID
|
|||
|
|
declare @OrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
declare @HotelId int;
|
|||
|
|
select @AuthotypeIdnew = AuthotypeId,@AuthoId = AuthorityId,@OrgId = OrgId,@HotelId = HotelId
|
|||
|
|
from inserted;
|
|||
|
|
insert into UserAuthoes(AuthorityId,AuthotypeId,UserId, HotelId) select @AuthoId,@AuthotypeIdnew,UserId,@HotelId from OrgUsers where OrgId = @OrgId and (select count(*) from UserAuthoes where UserId = OrgUsers.UserId and AuthorityId = @AuthoId and HotelId = @HotelId)<0
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>ֵ
|
|||
|
|
if exists(select * from sys.triggers where name=''trigger_Orguserinfo_Insert'')
|
|||
|
|
begin
|
|||
|
|
drop trigger trigger_Orguserinfo_Insert
|
|||
|
|
end
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
create trigger trigger_Orguserinfo_Insert ------------------------<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>on OrgUsers
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>for insert
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>as
|
|||
|
|
declare @userid int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted <EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD>id
|
|||
|
|
declare @OrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
select @userid = UserId,@OrgId = OrgId
|
|||
|
|
from inserted;
|
|||
|
|
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>е<EFBFBD>Ȩ<EFBFBD><EFBFBD>
|
|||
|
|
insert into UserAuthoes(AuthorityId,AuthotypeId,UserId,HotelId)
|
|||
|
|
select AuthorityId,AuthotypeId,@userid,HotelId from OrgAuthority
|
|||
|
|
where OrgId = @OrgId and
|
|||
|
|
(select count(*) from UserAuthoes where UserId = @userid and AuthorityId = OrgAuthority.AuthorityId and HotelId = OrgAuthority.HotelId) = 0
|
|||
|
|
')
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
--select * from View_UOA
|
|||
|
|
--<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ʱ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>ֵ
|
|||
|
|
exec('
|
|||
|
|
if exists(select * from sys.triggers where name=''trigger_Orguserinfo_Updata'')
|
|||
|
|
begin
|
|||
|
|
drop trigger trigger_Orguserinfo_Updata
|
|||
|
|
end
|
|||
|
|
')
|
|||
|
|
exec('
|
|||
|
|
create trigger trigger_Orguserinfo_Updata
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>on OrgUsers
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>for update
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>as
|
|||
|
|
declare @userid int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted <EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD>id
|
|||
|
|
declare @OrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
declare @oldOrgId int; --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Inserted<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
select @userid = UserId,@OrgId = OrgId
|
|||
|
|
from inserted;
|
|||
|
|
select @oldOrgId = OrgId
|
|||
|
|
from deleted;
|
|||
|
|
--ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>
|
|||
|
|
delete UserAuthoes where (
|
|||
|
|
select count(*) from OrgAuthority where UserAuthoes.UserId = @userid
|
|||
|
|
and UserAuthoes.HotelId = HotelId
|
|||
|
|
and UserAuthoes.AuthotypeId = AuthotypeId
|
|||
|
|
and UserAuthoes.AuthorityId = AuthorityId
|
|||
|
|
)>0
|
|||
|
|
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>
|
|||
|
|
insert into UserAuthoes(AuthorityId,AuthotypeId,UserId,HotelId)
|
|||
|
|
select AuthorityId,AuthotypeId,@userid,HotelId from OrgAuthority
|
|||
|
|
where OrgId = @OrgId and
|
|||
|
|
(select count(*) from UserAuthoes where UserId = @userid and AuthorityId = OrgAuthority.AuthorityId and HotelId = OrgAuthority.HotelId) = 0
|
|||
|
|
')
|
|||
|
|
insert into OrgUsers(OrgId,UserId,CreateTime) select 1,Id,GETDATE() from UserInfo where id not in (select UserId from OrgUsers)
|
|||
|
|
|