数据库使用过程中一些零散的应用,记录下来以便下次使用。

 

1、触发器

刚才在项目中使用到触发器,现在拿来做记录,以便后续使用。

CREATE TRIGGER ON_DELETE
ON [OSCE].[dbo].[QuestionType]
FOR DELETE
AS
BEGIN
IF EXISTS (
SELECT * FROM DELETED WHERE QT_TD> 38 AND QT_ID < 41)
ROLLBACK;
END

本触发器的意思是:创建触发器on_delete,确保数据库表 [OSCE].[dbo].[QuestionType] 中的QT_ID是39、40的这两条记录不被删除。如果删除了,则回滚。

删除触发器:drop Trigger on_delete

 

两个表:写入表和读取表,数据保持同步,两个触发器,一个插入一个更新:

USE [TABLENAME]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER  TRIGGER [dbo].[tgr_order_insert]
ON [dbo].[Order]
AFTER INSERT
AS
BEGIN
    --FROM table [Order]
    DECLARE @Id [uniqueidentifier];
    DECLARE @AccessionNumber [nvarchar](128);
    DECLARE @Age [int];
    DECLARE @AgeUnit [nvarchar](50);
    
    SELECT 
            @Id                   =     [Id],     
            @AccessionNumber      =     [AccessionNumber],
            @Age                  =        [Age]            
    FROM inserted;    
    
    --插入OrderQuery
    INSERT INTO [dbo].[OrderQuery]
              (
                [Id],     
                [AccessionNumber],
                [Age]
              )                      
    VALUES
               (
                @Id,     
                @AccessionNumber,
                @Age        
               ); 
                   
    EXEC [dbo].[SP_UpdateOrderQueryExtendFields] @Id
END
View Code

相关文章:

  • 2022-12-23
  • 2021-10-16
  • 2021-06-21
  • 2021-12-15
  • 2022-01-20
  • 2022-12-23
  • 2022-01-09
  • 2021-05-18
猜你喜欢
  • 2021-06-19
  • 2021-10-28
  • 2021-05-08
  • 2021-12-06
  • 2021-07-23
  • 2021-08-02
  • 2021-06-26
相关资源
相似解决方案