日度归档:2019年7月17日

mssql sqlserver 为存储过程设置默认值的方法分享


摘要:
下文讲述存储过程创建时,设定默认值的方法,如下所示:
实验环境:sql server 2008 r2


今天要对很久以前的一个存储过程新增几个参数,但是以前旧的程序也无法新增参数,现在该怎么办呢?
左思右想终于发现我们可以在存储过程的参数上设置默认值,使存储过程适应新旧程序,如下所示:

    ---下文的例子讲述,当未传入参数时,系统将使用sqlserver存储过程的参数默认值进行存储过程的执行
    create proc pr_maomao  
      @tmp1 varchar(10) ='t1',
      @tmp2 varchar(10) ='t2',
      @tmp3 varchar(10) ='t3'
     as 
     begin
           print '存储过程顺利执行!'
           print 'tmp1:'+@tmp1
           print 'tmp2:'+@tmp2
           print 'tmp3:'+@tmp3
     end
     go
     ---输入两个参数的执行方法
     exec pr_maomao  '参数1','参数2'
     ---输入三个参数的执行方法
          exec pr_maomao  '参数1','参数2','参数3'         
      go
          drop proc pr_maomao
     go 

触发器遇到多条数据插入或更新的注意事项


摘要:
在触发器的使用中,我们需特殊注意,当批量更新或批量插入数据时,数据表上的触发器只会被触发一次,此时我们在触发器中,处理数据时,一定要特殊注意,将所影响的数据返回至一个临时表中,然后对数据依次处理
实验环境:sql server 2008 R2

例:

      create table [maomao365.com]
        (keyId int identity,
         info    varchar(20)
        )
       go 
       ---例: update建立触发器
        create trigger tr_maomao
        as 
        begin  
             declare @tmp table(keyId int identity, info varchar(20))
             insert into @tmp (info) select info from @inserted   
             ---循环 "@tmp表"开始
             
             ---循环 "@tmp表"结束
     
        end 
      go 
      truncate table  [maomao365.com]
      drop       table  [maomao365.com]

mssql sqlserver 当数据表字段值为null时,则自动返回0的实现方法


摘要:
下文讲述当字段值为null时,自动返回0的实现方法,如下所示:
实验环境:sql server 2008 R2



实现思路:
使用isnull对字段值进行判断,当值为NULL,则返回0

     ---当"列1"的值为null时,则返回0
     select  isnull([列1],0) as [列值] from tableName