毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

sqlserver如何在整库中查询特定的值

更新时间:2013-9-10:  来源:毕业论文

sqlserver如何在整库中查询特定的值

现有一数据库,含数百个表,现要在整个库中查询出包含有“100元”的表,或显示出包含此值的表名即可。

你把我代码中alter 改成create,用来创建这个存储过程,然后执行:
exec spFind_Column_In_DB 1,'100元'这还说的不够清楚吗?
第一步:

SQL code?use 需要查找的数据库名 go create proc spFind_Column_In_DB (     @type int,--类型:1为文字类型、2为数值类型     @str nvarchar(100)--需要搜索的名字 ) as    --创建临时表存放结果     create table #tbl(PK int identity primary key ,tbl sysname,col sysname)     declare @tbl nvarchar(300),@col sysname,@sql nvarchar(1000)     if @type=1      begin        declare curTable cursor fast_forward         for            select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id             where o.type_desc='user_table' and user_type_id in (167,175,231,239,35,99)     end    else    begin        declare curTable cursor fast_forward         for        select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id             where o.type_desc='user_table' and user_type_id in (56,48,52,59,60,62,106,108,122)     end    open curtable     fetch next from curtable into @tbl,@col     while @@FETCH_STATUS=0     begin        set @sql='if exists (select * from '+@tbl+' where '        if @type=1         begin            set @sql += @col + ' like ''%'+@str +'%'')'        end        else        begin            set @sql +=@col + ' in ('+@str+'))'        end            set @sql += ' INSERT #TBL(tbl,col) VALUES('''+@tbl+''','''+@col+''')'        --print @sql         exec (@sql)         fetch next from curtable into @tbl,@col     end    close curtable      deallocate curtable     select * from #tbl

第二步:
打开另外一个窗口:

SQL code?123 use 需要查找的数据库名 go exec spFind_Column_In_DB 1,'100元'

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。