美文网首页
在sqlserver数据库中查询所有表的任意字段中某个值(例如值

在sqlserver数据库中查询所有表的任意字段中某个值(例如值

作者: 徐子鑑 | 来源:发表于2017-08-29 09:10 被阅读31次
    use sql  --sql改为数据库名
    CREATE TABLE qResults (tName nvarchar(370), cname nvarchar(3630),[count] int)
    
    declare @tname nvarchar(200)
    declare @cname nvarchar(200)
    
    declare @countOut nvarchar(200)
    declare @sql nvarchar(max)
    declare c_search cursor for 
    select t.name,c.name from sysobjects t inner join syscolumns c on t.id=c.id where t.type='u'  and c.xtype in(56,167,175,231,239) order by t.name --xtype 这个地方限制类型为int varchar char nvarchar nchar 五种类型
    open c_search
    fetch next from c_search into @tname,@cname
    while @@FETCH_STATUS=0
    begin
       
       set @sql=N'select @countx=COUNT(*) from '+@tname +' where [' +@cname +'] =''a'' '
       
       print @sql
       EXECUTE sp_executesql @sql,N'@countx nvarchar(200) out ', @countx=@countOUT OUT
    
       insert into qResults values (@tname,@cname,@countOUT)
    
       
       fetch next from c_search into @tname,@cname
    end
    select tName 'Table',cname 'Field' from qResults where [count]>0 order by tname
    close c_search
    deallocate c_search
    
    drop table qResults
    

    相关文章

      网友评论

          本文标题:在sqlserver数据库中查询所有表的任意字段中某个值(例如值

          本文链接:https://www.haomeiwen.com/subject/vcpcdxtx.html