日度归档:2019年9月11日

mssql sqlserver sql脚本如何使用存储过程返回的结果集呢?


摘要:
下文讲述sql脚本中使用存储过程返回结果集的方法分享,如下所示:
实验环境:sql server 2008 R2


在sql脚本中,如果需接收存储过程返回结果集,那么我们可以定义一个临时数据表(临时数据表的列名和存储过程返回列一致即可),如下所示:

 create proc pr_maomao365
as
select 1 as a 

select 2 as b 

select 3 as c
go


create table #t(keyId int )
go
---将存储过程返回结果集插入临时表中
insert into  #t (keyId) exec pr_maomao365 

select*   from  #t
go 
drop  table #t 
drop proc pr_maomao365


注意事项:
1.如果返回结果集存在多个时,每个结果集中的列类型和列条数需一致
2.多个结果集都会依次插入之临时表中

mssql sqlserver 使用触发器监控某个字段是否被修改


摘要:
下文讲述sqlserver中使用触发器监控指定字段是否发生变化的方法分享,如下所示:
实验环境:sql server 2008 R2



应用背景:
今天同事让我们制作一个功能,当数据表中的指定字段被修改后,将日志信息放入到指定的数据表上,此处我们采用了触发器实现此功能

    ---创建触发器
create trigger [tig_log] on  数据表名称
after update  
as 
begin
       --数据表必须有主键,不然无法关联数据
        ---例:检测字段info 是否发生变化 keyId 为数据表中的主键
       select @flag int   ---不等于0代表指定字段发生过变化
       select @flag   =
            case when a.info =b.info then 0 else 1
            end 
       from inserted a left join deleted b on a.keyId = b.keyId 
end