查询数据库所有表,和已关联发布订阅的表

数据库类型:SqlServer 2012

--检查是否存在发布订阅的系统表
if (select count(*) from sys.tables where name=N'sysarticles' or name= N'syspublications') =2
            --存在, 查询数据库 下所有表的 订阅情况
            select a.name as 'TableName' , (case when b.artid is null then 0 else 1 end ) as 'IsCheck',c.name as'PublicationName'
            from sys.tables a
            left join [PhoneAndPic].[dbo].[sysarticles] b on a.object_id=b.objid and b.dest_owner='dbo'
            left join [PhoneAndPic].[dbo].[syspublications] c on b.pubid=c.pubid
            where a.is_ms_shipped =0 
            order by c.name desc ;
else
            --不存在,只查询普通表
            select a.name as  'TableName' , 0 as'IsCheck', ''as'PublicationName'  
            from sys.tables a 
            where a.is_ms_shipped =0 ;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值