zoukankan      html  css  js  c++  java
  • Oracle Select into 用Sql server替换

    --Oracle:
    DECLARE n_count int;
    begin
      Select count(*) into n_count from  from M_Test where ENTITYLSH = 1;
      dbms_output.put_line(n_count);
     end;
     
    
    
    
    
    
    
    
    --sql server:
    declare @is_exist_alert3 int;
    Select @is_exist_alert3=count(*) from M_Test where ENTITYLSH = 1;
    print(@is_exist_alert3);
    

    以上单从表达意思上更改,还有其他差别

    触发器中使用时所遇到的区别

    --oracle
    CREATE OR REPLACE TRIGGER TR_INST_ALARM
        BEFORE INSERT ON M_ALARM
        FOR EACH ROW
    BEGIN
        select ENTITY_SEQ.NEXTVAL into :new.ENTITYLSH from dual;
        select 'A_' || trim(to_char(:new.ENTITYLSH, '00000000')) into                            :new.ALARMINDEX from dual;
    END;
    --ENTITY_SEQ.NEXTVAL取序列下一个
    --第一个select语句意思是取序列下一个值赋值给系统表(new)中的ENTITYLSH字段
    --第二个select语句意思是修改系统表(new)中的ENTITYLSH字段的标示方法并插入
    --new相当于插入表,是系统维护的与你触发此触发器的插入语句中的表结构一样
    
    
    
    --Sql server
    CREATE TRIGGER TR_INST_ALARM
    ON M_ALARM
    instead of insert
    AS
    BEGIN
    DECLARE @index VARCHAR(20),@Orderindex VARCHAR(20);
    select @index=next value for ENTITY_SEQ;
    select @Orderindex= 'A_'+rtrim(ltrim(right(cast('00000000'+rtrim(cast(@index as int)) as varchar(20)),10)))
    INSERT INTO M_ALARM select @index
               ,@Orderindex
               ,ALARMDEPARTMENT
               ,TYPEMETHODINDEX
               ,ALARMPHENOMENON
               ,ENTITYTYPE from Inserted ;	
    END;
    --意思与上边一样,
    --insert类似于oracle中的new
    

      

  • 相关阅读:
    HDU- 1075 What Are You Talking About (Trie or map)
    HDU-1251 统计难题 (Trie)
    Trie树模板(插入和查询)
    HDU 5120 Intersection
    HDU 5025 Saving Tang Monk(状压bfs)
    Light OJ 1094 (树的直径)
    zzuli 1877 蛤玮打扫教室
    HDU 5642 King's Order(数位dp)
    POJ 2689 Prime Distance
    hdu 3853 LOOPS(概率dp)
  • 原文地址:https://www.cnblogs.com/wangboke/p/5523240.html
Copyright © 2011-2022 走看看