附一:sql脚本
---------------对重复住院号问题处理
ALTER TABLE LFMIS..JCMXXM ADD ZYCS INT NOT NULL DEFAULT '0'
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'ZYCH' AND type = 'TR')
DROP TRIGGER ZYCH
GO
CREATE TRIGGER ZYCH
ON LFZYSJH
INSTEAD OF INSERT
AS
IF EXISTS (SELECT a.SJH FROM LFMIS..JC_MXXM a WHERE right(a.sjh,8) in (select ZYH from inserted) AND MZ_ZY=1)
begin
update lfmis..jc_mxxm
set sjh=sjh+'x',ZYCS=1
where right(sjh,8) in (select ZYH from inserted)
insert into LFZYSJH(ZYH,XM,FYM,MC,SL,YMD,JE)
select ZYH,XM,FYM,MC,SL,YMD,JE from inserted
end
else
insert into LFZYSJH(ZYH,XM,FYM,MC,SL,YMD,JE)
select ZYH,XM,FYM,MC,SL,YMD,JE from inserted
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
---------------接口与控制器信息同步
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
use LFMIS
go
if exists(select name from sysobjects where name='sfbm_TJ' and type='tr')
drop TRIGGER sfbm_TJ
go
create TRIGGER sfbm_TJ
ON SYS_SFXM
FOR delete, INSERT, UPDATE
AS
DECLARE @LF_COU NUMERIC(5),
@XX_COU NUMERIC(5)
SELECT @LF_COU=COUNT(*) FROM SYS_SFXM
SELECT @XX_COU=COUNT(*) FROM SFXX.DBO.SFBM
--SELECT @LF_COU,@XX_COU
IF @LF_COU>@XX_COU
BEGIN
DECLARE @XMBM1 VARCHAR(100),
@XMMC1 VARCHAR(100)
SELECT @XMBM1=A.XMBM,@XMMC1=A.XMMC FROM SYS_SFXM A WHERE NOT EXISTS (SELECT * FROM SFXX.DBO.SFBM WHERE XMBM=A.XMBM)
-----SELECT @XMBM,@XMMC
INSERT INTO SFXX.DBO.SFBM
SELECT @XMBM1,@XMMC1
END
ELSE
IF @LF_COU<@XX_COU
BEGIN
DECLARE @XMBM2 VARCHAR(100),
@XMMC2 VARCHAR(100)
SELECT @XMBM2=A.XMBM,@XMMC2=A.XMMC FROM SFXX.DBO.SFBM A WHERE NOT EXISTS (SELECT * FROM SYS_SFXM WHERE XMBM=A.XMBM)
DELETE SFXX.DBO.SFBM
WHERE XMBM=@XMBM2
END
GO
-----------门诊信息提取接口
CREATE PROCEDURE MZSF
AS
INSERT INTO MZXX
SELECT LSH,Name,SFDM,Brief,sl,TOLLDATE,JE
FROM TANYAN.hisgzk.DBO.sf a
WHERE TOLLDATE>DATEDIFF(day,+3,GETDATE())
AND EXISTS (SELECT * FROM SFBM WHERE XMBM=a.SFDM )
AND NOT EXISTS (SELECT * FROM MZXX WHERE LSH=a.LSH AND TOLLDATE=a.TOLLDATE) ORDER BY TOLLDATE
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
分享到:
相关推荐
SQL触发器、存储过程和函数是数据库管理中的重要组成部分,它们极大地增强了数据库的功能性和灵活性。在本篇文章中,我们将深入探讨这些概念,并提供实用的示例来帮助理解它们的使用和重要性。 **SQL触发器...
在IT领域,数据库管理和开发是至关重要的组成部分,而SQL触发器是数据库系统中一个强大的工具,用于在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行一段预定义的SQL代码。在这个"SQL触发器应用实例...
### 获取SQL触发器的状态 #### 知识点详解 在SQL Server中,触发器是一种特殊类型的存储过程,它被设计为响应对特定表的数据修改(如INSERT、UPDATE或DELETE操作)而自动执行。触发器可以用来确保数据完整性,并且...
SQL 触发器实例讲解 在本文中,我们将详细介绍 SQL 触发器的概念、类型和应用场景。触发器是 SQL Server 中的一种特殊存储过程,用于对某一个表的操作时触发某种条件,从而执行一段程序。常见的触发器有三种:...
SQL 触发器实例讲解 SQL 触发器是一种特殊的存储过程,它可以在对某一个表进行操作时触发某种条件,从而执行一段程序。触发器可以应用于 Insert、Update、Delete 等事件,以确保数据的一致性和完整性。在本文中,...
### SQL触发器实例加解析 #### 一、SQL触发器概念与作用 SQL触发器是一种存储过程,它在数据表中的数据被修改(插入、更新或删除)时自动执行。触发器可以用来确保数据完整性,并且可以实现复杂的业务逻辑。 ####...
SQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。在数据库设计和管理中,触发器常用于实现数据完整性的额外检查、日志记录、业务...
### SQL触发器使用实例解析 #### 一、触发器概述 在数据库管理中,触发器是一种特殊类型的存储过程,它可以在特定的事件(如插入、更新或删除操作)发生时自动执行。触发器的主要作用是确保数据完整性,通过在特定...
SQL 触发器实例讲解 SQL 触发器是一种特殊的存储过程,用于在数据库中执行某些操作时自动触发某些事件。触发器可以应用于 Insert、Update、Delete 事件等。 什么是触发器? 触发器是一个特殊的存储过程,在 SQL ...
### SQL触发器语法兼实例 #### 一、触发器简介 触发器是一种特殊的存储过程,它可以在用户尝试对指定的表进行数据修改操作时自动执行。这种机制在数据库管理中非常有用,因为它可以帮助确保数据的一致性和完整性。...
### SQL触发器的基础概念及其应用实例 #### 一、什么是SQL触发器? 在数据库管理系统(DBMS)中,触发器是一种特殊类型的存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)被执行时自动运行。触发器...
【SQL触发器详解与实例】 SQL触发器是数据库管理系统中的一种特殊存储过程,它与普通存储过程的主要区别在于,触发器并非由用户直接调用,而是由特定的数据库操作(如INSERT、UPDATE、DELETE)自动触发执行。触发器...
**SQL触发器**: 1. **定义**:触发器是一种特殊的存储过程,会在特定的DML(INSERT、UPDATE、DELETE)操作发生时自动执行。 2. **类型**:分为`AFTER`触发器(操作完成后执行)和`BEFORE`触发器(操作执行前执行)...
标题 "SQL触发器管理系统+论文" 暗示了该压缩包内容主要涉及SQL Server数据库中的触发器管理和相关的系统设计。触发器是SQL Server数据库中的一种重要对象,它允许数据库管理员在特定的数据操作(如INSERT、UPDATE或...
SQL触发器是数据库管理系统中的一种重要机制,它允许在特定数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL代码。通过使用触发器,数据库管理员和开发人员可以实现复杂的业务逻辑和数据完整性规则,...
在SQL中,触发器是一种特殊的存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器主要用于维护数据的一致性和完整性,或者执行一些额外的操作,比如日志记录、审计跟踪等。在本例...