1. --搜索指定数据在那个对象中存在.txt(所有表中模糊查询)
  2.  
  3. CREATE PROC sp_ValueSearch
  4. @value sql_variant, --要搜索的数据
  5. @precision bit=1 --1=仅根据sql_variant中的数据类型查找对应类型的数据列.<>1,查询兼容的所有列,字符数据使用like匹配
  6. AS
  7. SET NOCOUNT ON
  8. IF @value IS NULL RETURN
  9.  
  10. --数据类型处理
  11. SELECT xtype INTO #t FROM systypes
  12. WHERE name=SQL_VARIANT_PROPERTY(@value,N'BaseType')
  13.  
  14. --扩展数据类型及查询处理语句
  15. DECLARE @sql nvarchar(4000),@sql1 nvarchar(4000)
  16. IF @precision=1
  17. SET @sql=CASE SQL_VARIANT_PROPERTY(@value,N'BaseType')
  18. WHEN N'text' THEN N' LIKE N''%''+CAST(@value as varchar(8000))+''%'''
  19. WHEN N'ntext' THEN N' LIKE ''%''+CAST(@value as nvarchar(4000))+''%'''
  20. ELSE N'=@value' END
  21. ELSE
  22. BEGIN
  23. SET @sql=CAST(SQL_VARIANT_PROPERTY(@value,N'BaseType') as sysname)
  24. IF @sql LIKE N'%char' or @sql LIKE N'%text'
  25. BEGIN
  26. INSERT #t SELECT xtype FROM systypes
  27. WHERE name LIKE N'%char' or name LIKE N'%text'
  28. SELECT @sql=N' LIKE N''%''+CAST(@value as '
  29. +CASE
  30. WHEN LEFT(@sql,1)=N'n' THEN ' nvarchar(4000)'
  31. ELSE 'varchar(8000)' END
  32. +N')+N''%'''
  33. END
  34. ELSE IF @sql LIKE N'%datetime'
  35. BEGIN
  36. INSERT #t SELECT xtype FROM systypes
  37. WHERE name LIKE N'%datetime'
  38. SET @sql=N'=@value'
  39. END
  40. ELSE IF @sql LIKE N'%int'
  41. OR @sql LIKE N'%money'
  42. OR @sql IN(N'real',N'float',N'decimal',N'numeric')
  43. BEGIN
  44. INSERT #t SELECT xtype FROM systypes
  45. WHERE name LIKE N'%int'
  46. OR name LIKE N'%money'
  47. OR name IN(N'real',N'float',N'decimal')
  48. SET @sql=N'=@value'
  49. END
  50. ELSE
  51. SET @sql=N'=@value'
  52. END
  53. --保存结果的临时表
  54. CREATE TABLE #(TableName sysname,FieldName sysname,Type sysname,SQL nvarchar(4000))
  55.  
  56. DECLARE tb CURSOR LOCAL
  57. FOR
  58. SELECT N'SELECT * FROM '
  59. +QUOTENAME(USER_NAME(o.uid))
  60. +N'.'+QUOTENAME(o.name)
  61. +N' WHERE '+QUOTENAME(c.name)
  62. +@sql,
  63. N'INSERT # VALUES(N'+QUOTENAME(o.name,N'''')
  64. +N',N'+QUOTENAME(c.name,N'''')
  65. +N',N'+QUOTENAME(QUOTENAME(t.name)+CASE
  66. WHEN t.name IN (N'decimal',N'numeric')
  67. THEN N'('+CAST(c.prec as varchar)+N','+CAST(c.scale as varchar)+N')'
  68. WHEN t.name=N'float'
  69. OR t.name like N'%char'
  70. OR t.name like N'%binary'
  71. THEN N'('+CAST(c.prec as varchar)+N')'
  72. ELSE N'' END,N'''')
  73. +N',@sql)'
  74. FROM sysobjects o,syscolumns c,systypes t,#t tt
  75. WHERE o.id=c.id
  76. AND c.xusertype=t.xusertype
  77. AND t.xtype=tt.xtype
  78. AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
  79.  
  80. OPEN tb
  81. FETCH tb INTO @sql,@sql1
  82. WHILE @@FETCH_STATUS=0
  83. BEGIN
  84. SET @sql1=N'IF EXISTS('+@sql+N') '+@sql1
  85. EXEC sp_executesql @sql1,N'@value sql_variant,@sql nvarchar(4000)',@value,@sql
  86. FETCH tb INTO @sql,@sql1
  87. END
  88. CLOSE tb
  89. DEALLOCATE tb
  90. SELECT * FROM #

  

MSSQL 所有表中模糊查询的更多相关文章

  1. 表单模糊查询的三种简单方式(springboot-h2-mybatis)

    前几天运营提到说后台管理系统有几个地方想要模糊查询..   想了下是简单的,就是要注意以前方法的被调用情况,进行增量改动,以免牵一发而动全身.整理一波记录下(本次案例是按名字模糊查询学生信息). 三种 ...

  2. MyBatis Plus 实现多表分页模糊查询

    项目中使用springboot+mybatis-plus来实现. 但是之前处理的时候都是一个功能,比如分页查询,条件查询,模糊查询. 这次将这个几个功能合起来就有点头疼,写下这边博客来记录自己碰到的问 ...

  3. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  4. exp导出一个表中符合查询条件的数据

    原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50 ...

  5. TP框架中模糊查询实现

    TP框架中模糊查询实现 $where['g.name'] = array('like','%'.$groupname.'%'); 表达式查询 上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式 ...

  6. 下面介绍mysql中模糊查询的四种用法:

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  7. mybatis中模糊查询的使用以及一些细节问题的注意事项

    页面有个功能 为 根据 品牌名进行 关键字查询,对应到数据库的是brand表的name字段的模糊查询 如果用的是SSM框架,在mybatis中我们需要自己写sql语句,涉及到like的模糊查询,myb ...

  8. SQL中模糊查询的模式匹配

    SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...

  9. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...

随机推荐

  1. poj 1016 Numbers That Count

    点击打开链接 Numbers That Count Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17922   Accep ...

  2. JavaScript显示分页按钮

    /** * 获取分页按钮 * @param total_page 总页数 * @param current_page 当前页 * @param num 每页显示多少个分页按钮 * @returns { ...

  3. Android中 View not attached to window manager错误的解决办法

    前几日出现这样一个Bug是一个RuntimeException,详细信息是这样子的:java.lang.IllegalArgumentException: View not attached to w ...

  4. php 获取图片主要颜色的方法

    本文章向码农们介绍php 获取图片主要颜色的方法,主要涉及php针对图片的相关操作技巧,需要的码农可以参考一下. $i = imagecreatefromjpeg("image.jpg&qu ...

  5. Hibernate——主键配置

    <id>元素中的<generator>用来为该持久化类的实例生成唯一的标识,hibernate提供了很多内置的实现. Increment:由hibernate自动递增生成标识符 ...

  6. android Json 解析和生成

    什么是json: JSON即JavaScript Object Natation的简称,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互.JSON易于人阅读和编写.同时也易于机 ...

  7. Vertex中实现每顶点光照的镜面高光效果

    1,基础知识讲解 一个物体在自然界会收到三种光的影响,周围的环境光.漫反射和镜面反射.那么对于计算机要想模拟现实中的光照,就应该也会实现这三种基本光照->环境光.漫反射.镜面高光.对于这三种光照 ...

  8. Unity Shader:Blur

    花了一晚上的时间终于看懂Image Effect中的Blur,其实很简单,就是一下子没有理解到. 原理:使用两个一维[1*7]的高斯滤波模板,一个用在x方向,另一个用在y方向.高斯滤波有模糊的效果. ...

  9. Markdown 编辑器语法指南

    基本技巧 代码 如果你只想高亮语句中的某个函数名或关键字,可以使用 `function_name()` 实现 通常编辑器根据代码片段适配合适的高亮方法,但你也可以用 ``` 包裹一段代码,并指定一种语 ...

  10. Ceph–s ceph 集群状态

    [root@ceph-mon1 ~]# ceph -s cluster 03f3afd4-4cc6-4083-a34c-845446a59cd4 health HEALTH_OK monmap e1: ...