• 数据库 sql server


    1、
     1 if exists(select *  from sys.objects where name='test')
     2     drop table test
     3 go
     4 create table test
     5 (
     6     id varchar(20),
     7     name varchar(20)
     8 )
     9 if exists(select * from sys.objects where name='t_insert')
    10     drop trigger t_insert
    11 go
    12 create trigger t_insert on test
    13     instead of insert 
    14 as
    15     declare @id varchar(20),@id1 int,@head varchar(20)
    16     select * into #tb from inserted
    17     set @head='uzi'+convert(varchar(20),getdate(),112)
    18     select @id=max(id) from test
    19     --if @id is null
    20         --set @id1=0
    21     --else
    22         --set @id1=cast(substring(@id,12,4) as int)
    23     if exists(select * from test)
    24         set @id1=cast(substring(@id,12,4) as int)
    25     else
    26         set @id1=0
    27     update #tb set @id1=@id1+1,id=@head+right('0000'+cast(@id1 as varchar),4)
    28     insert into test select * from #tb
    29 go
    30 insert into test(name) values('小马')
    31 insert into test(name) values('小明')
    32 insert into test(name) values('小鱼')
    33 
    34 select * from test
    表test

    if exists(select * from test)
    select '0'  -------------------------------------------------
    else        -- 表中有数据时为: 0 | 表中无数据时为: 1      --
    select '1'  -------------------------------------------------
    if exists(select count(*) from test)
    select '0' --------------------------------------------------
    else       -- 表中有数据时为: 1 | 表中无数据时为: 0        --
    select '1' --------------------------------------------------

    丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄

    【判断表中是否有数据】

    丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅丅

    --使用局部变量

      --select @id=max(id) from test

          --if @id is null
              --set @id1=0
          --else
              --set @id1=cast(substring(@id,12,4) as int)

    2、一样的代码,就差一个范围,效果不相同

     1 if exists(select *  from sys.objects where name='test')
     2     drop table test
     3 go
     4 create table test
     5 (
     6     id varchar(20),
     7     name varchar(20)
     8 )
     9 if exists(select * from sys.objects where name='t_insert')
    10     drop trigger t_insert
    11 go
    12 create trigger t_insert on test
    13     instead of insert 
    14 as
    15     declare @id varchar(20),@id1 int,@head varchar(20)
    16     select * into #tb from inserted
    17     set @head='uzi'+convert(varchar(20),getdate(),112)
    18     select @id=max(id) from test
    19     if @id is null
    20         set @id1=0
    21     else
    22         set @id1=cast(substring(@id,12,4) as int)
    23     update #tb set @id1=@id1+1,id=@head+right('0000'+cast(@id1 as varchar),4)
    24     insert into test select * from #tb
    25 go
    26 insert into test(name) values('小马')
    27 insert into test(name) values('小明')
    28 insert into test(name) values('小鱼')
    29 
    30 select * from test
    View Code
     1 if exists(select * from sys.objects where name='test')
     2     drop table test
     3 go
     4 create table test
     5 (
     6     id varchar(20),
     7     name varchar(20)
     8 )
     9 --触发器
    10 if exists(select * from sys.objects where name='t_insert')
    11     drop trigger t_insert
    12 go
    13 create trigger t_insert on test
    14     instead of insert
    15 as
    16     declare @id varchar,@id1 int,@head varchar(20)
    17     select * into #tb from inserted
    18     set @head=convert(varchar(20),getdate(),112)
    19     select @id=max(id) from test
    20     if @id is null
    21         set @id1=0
    22     else
    23         set @id1=cast(substring(@id,9,4) as int)
    24     update #tb set @id1=@id1+1,id=@head+right('0000'+cast(@id1 as varchar),4)
    25     insert into test select * from #tb
    26 go
    27 insert into test(name) values('小马')
    28 insert into test(name) values('小白')
    29 insert into test(name) values('小黑')
    30 select * from test
    View Code

    给变量添加类型后规定范围(第2个16行代码处)

        (a)declare @id varchar,@x int,@head varchar(20) 

          效果为:

            201606140001    小黄
            201606140001    小白
            201606140001    小黑

        (b)declare @id varchar(20),@x int,@head varchar(20) 

          效果为:

            201606140001    小黄
            201606140002    小白
            201606140003    小黑

         (c)declare @id varchar(20),@x int,@head varchar

          效果为:

            20001    小黄
            20001    小白
            20001    小黑

  • 相关阅读:
    servlet多线程同步问题
    servlet之request
    servlet方法
    非静态内部类不能有静态成员
    接口与抽象类的区别
    枚举
    Install CUDA 6.0 on Ubuntu 14.04 LTS
    Introduction to Deep Learning Algorithms
    codeblocks 使用汇总
    矩阵奇异值分解(SVD)及其应用
  • 原文地址:https://www.cnblogs.com/xiaoma-qi/p/5580981.html
Copyright © 2020-2023  润新知