MSSQL插入数据分析受影响的表

SET NOCOUNT ON

if object_id('tempdb.dbo.#tem1') is null
create table #tem1
(name varchar(100),
 tbefore int default 0
)
else
create table #tem2
(name varchar(100),
 tafter int default 0
)

declare @sql varchar(1000)
declare cur cursor for
 select 'select '''+name+''', count(*) from '+name as sql  from dbo.sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 order by refdate desc
open cur
fetch next from cur into @sql
while @@fetch_status=0
begin
   if object_id('tempdb.dbo.#tem2') is null
     insert into #tem1(name,tbefore)
     exec(@sql)
   else
     insert into #tem2(name,tafter)
     exec(@sql)
   fetch next from cur into @sql
end
close cur
deallocate cur

if object_id('tempdb.dbo.#tem2') is not null
begin
  select a.name 表名,a.tbefore as 操作前的行数,b.tafter as 操作后的行数 from #tem1 a,#tem2 b where a.name=b.name and a.tbefore<>b.tafter
  drop table #tem1
  drop table #tem2
end else
print '请插入记录后,再执行一次这段语句'

SET NOCOUNT OFF

 

这段代码可以适合这个需求:
用户在客户端插入一条记录后,通过这段代码可以查出这动作影响了哪几个表

适合于做数据分析,或分析数据库时使用


使用方法:在SQL查询分析器中先运行一下这代码,再在客户端插入一条记录,然后再运行一下这代码就列出来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值