某数据库有1000个表,我不知道数据存哪个表我想select * from 表 where xxx=bbb这里的表是这个数据库里的所有的表(以查到这个bbb到底在哪个表里)有这样的一次性语句吗
解决方案 »
- 有SQL服务器sa和密码,怎么把数据库复制到本地SQL?
- jsp数据库查询问题
- 请大虾帮我下个SQL
- csdn的操作问题
- 设备'c:\qqwry\QQWry.Dat'文件不是有效的Microsoft 磁带格式备份集。RESTORE DATABASE 操作异常终止。
- Sql Server 2008登陆问题?
- 如何将DBF文件转换为sql
- 现有一sql脚本,在查询分析器中怎样执行?
- 怎样随机取记录?
- 求当前月与近三个月(不含当前月)的比值
- sqlserver2000无法远程登录,但是在本地可以用查询分析器登录
- 请问如何将文件(World文件,execl文件)保存到SQL Server 数据库及如何读出
create table temp
(A varchar(50),
B varchar(50),
C varchar(50),
D varchar(50),
E varchar(50),
F varchar(50),
G varchar(50)
)
insert into temp
select 'ab','abc','abc','abcd','1abcb','ls','dh'
select * from temp
存储过程:
create procedure pro_col (@tbl_name varchar(30),@str varchar(10))as
declare @cur_col varchar(30)declare @sql varchar(1000)
set @sql=''
declare cur_col cursor forselect t2.name from sysobjects t1,syscolumns t2 where t1.id=t2.id and t1.xtype='u' and t1.name=''+@tbl_name+'' order by t2.nameopen cur_colfetch next from cur_col into @cur_col
while @@fetch_status = 0 begindeclare @flag varchar(50)
select @flag=''+@cur_col+''
--set @sql=@sql+' select '''+@flag+''' 列,'+@flag+' 值 from '+@tbl_name+' where '+@flag+' like ''%'+''+@str+''+'%'''+' union all '--模糊匹配
set @sql=@sql+' select '''+@flag+''' 列,'+@flag+' 值 from '+@tbl_name+' where '+@flag+' = '''+@str+''''+' union all '--精确匹配fetch next from cur_col into @cur_colend
set @sql=substring(@sql,1,len(@sql)-10)
print @sql
exec (@sql)close cur_col
deallocate cur_colgo
调用:exec pro_col temp,abc--表名,字符
结果:
-----
列 值
B abc
C abc
用游标换表,用or连接条件,用用事务停止继续查找,
用exec改动态 用count判断是否找到