MSSQL 查询某个值在哪个表哪个字段 及 实用SQL 锦集 同事分享的.感谢
2013-06-06 01:10
453 查看
查数据库是否存在:select * From master.dbo.sysdatabases where name='test2' 跨数据库查询: select * from OPENDATASOURCE('SQLOLEDB','server=192.168.2.251; uid=sa;pwd=hzya924;database=Hayz_JJ_ERP').Hayz_JJ_ERP.dbo.T_Equipment 查看表列名及说明:select a.name 列名,isnull(cast(c.value as varchar(8000)), ' ') 描述 from syscolumns a left join sysproperties c on a.id = c.id and a.colid=c.smallid where a.id=object_id( 'System_Table ') 查看触发器是否存在:select * from sysobjects where id=object_id(N'trutest_id_delete') and objectproperty(id,N'IsTrigger')=1 模糊查询整个数据库中的关键字: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Full_Search]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[Full_Search] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE proc Full_Search(@string varchar(50)) as begin declare @t table ( 所在表 varchar(50), 所在列 varchar(50), 辅助查询语句 nvarchar(1000) ) declare @tbname varchar(50) declare tbroy cursor for select name from sysobjects where xtype='u' --第一个游标遍历所有的表 open tbroy fetch next from tbroy into @tbname while @@fetch_status=0 begin declare @colname varchar(50) declare colroy cursor for select a.name from syscolumns a inner join systypes b on a.xtype=b.xtype where a.id=object_id(@tbname) and b.name in ('varchar','nvarchar','char','nchar') --数据类型为字符型的字段 open colroy fetch next from colroy into @colname while @@fetch_status=0 begin declare @sql nvarchar(1000),@i int set @sql='select @i=count(1) from '+@tbname+' where '+@colname+' like ''%'+@string+'%''' exec sp_executesql @sql,N'@i int output',@i output --输出满足条件表的记录数 if @i>0 begin set @sql='select * from '+@tbname+' where '+@colname+' like ''%'+@string+'%''' insert into @t values(@tbname,@colname,@sql) end fetch next from colroy into @colname end close colroy deallocate colroy fetch next from tbroy into @tbname end close tbroy deallocate tbroy if not exists(select 1 from @t) print '字符串 "'+@string +'" 在当前数据库里不存在!' else select * from @t end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO EXEC Full_Search '22' -- 22 即为要查找的字段值
相关文章推荐
- mssql查询某个值存在某个表里的哪个字段的值里面
- php mssql扩展SQL查询中文字段名解决方法
- php mssql扩展SQL查询中文字段名解决方法
- php mssql扩展SQL查询中文字段名解决方法
- php mssql扩展SQL查询中文字段名解决方法
- MsSQL SQLServer 查询 表中字段的及类型是否为空
- SQL经验分享(二)取得数据库中所有的表名、字段名以及字段属于哪个表
- MSSQL中如何用SQL语句查询字段类型?
- 通过sql查询某个表的主键是哪个字段
- MSSQL中如何用SQL语句查询字段类型?
- 用SQL语句查询出所有表的表结构(字段定义,类型,长度等),导出CSV(SQL2008 R2)
- sql 根据字段查询不同表
- sql 多字段求和并作为查询条件
- SQL分页存储过程(不支持多表联合查询,不支持多字段排序)
- sql查询字段中的换行符
- 非常实用的,使用SQL查询连续号码段。(做计费系统或SP的兄弟经常会用到)
- sql查询某个字段重复出现两次以上
- sqlmap映射继承机制及映射字段顺序与SQL查询字段顺序无关
- sql中模糊查询的字段中包含百分号%的语句
- 查询某个字段没有值的所有记录的SQL语句怎么写?