mssql查询某个值存在某个表里的哪个字段的值里面

第一步:创建 查询某个值存在某个表里的哪个字段的值里面 的存储过程

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

第二步:从数据库中找到这个刚生成的存储过程。

第三步:

点击确定后

第四步:右键spFind_Column_In_DB_Limy->执行存储过程

按照需要,填入参数。

可能和它一起用的SQL语句:

查看与某一个表相关的视图、存储过程、函数

select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like ‘%表名%‘

时间: 2024-10-20 12:51:52

mssql查询某个值存在某个表里的哪个字段的值里面的相关文章

MSSQL查询所有数据库表,指定数据库的字段、索引

--查询所有数据库USE mastergoselect [name] from [sysdatabases] order by [name] --查询其中一个数据库test,就可以得到这个数据库中的所有的表名了,语句如下: USE testgo select [id], [name] from [sysobjects] where [type] = 'u' order by [name] --查出v_lyb这个表中所有的字段select [name] from [syscolumns] wher

[Elasticsearch] 关于字段重复值的常用查询和操作总结

1. 取得某个索引中某个字段中的所有出现过的值 这种操作类似于使用SQL的SELECT UNIQUE语句.当需要获取某个字段上的所有可用值时,可以使用terms聚合查询完成: GET /index_streets/_search?search_type=count { "aggs": { "street_values": { "terms": { "field": "name.raw", "siz

MSSQL查询第五条到第十条数据

查询数据库中第五条数据到第十条数据,分两种情况: 1,ID是连接的,当然这种情况比较好查.直接SELECT就可以了,取ID大于5小于10就可以了, 这种情况比较少. 2,ID不是连接的,如果要取第五条数据到第十条数据,就得从SQL查询SELECT着手 select top 10 * from TB1 where Id not in (select top 5 Id from TB1 ) 其中10表示:查询的数量,5表示是从第几条开始查.MSSQL查询第五条到第十条数据,布布扣,bubuko.co

python输出mssql 查询结果示例

# -*- coding: utf-8 -*-# python 3.6import pymssql conn=pymssql.connect(host='*****',user='******',password='*******',database='****') ''' 如果和本机数据库交互,只需修改链接字符串 conn=pymssql.connect(host='.',database='Michael') ''' cur=conn.cursor() cur.execute('select

【数据库】- 一个值只有0和1的字段,到底要不要建索引?

关于数据库索引的所有文章,都会告诉你不要对这种字段建索引. 但这些文章不会告诉你的一个事实是: 如果表里面这个字段的值分布极度不均匀的情况下,而且你需要查询分布较少的记录的话,索引就非常有用了 举个例子,假设表中有一千万条记录,某个状态为0的记录总数大概会有100条,那么你想查询状态为0的记录时,有没有索引影响非常大,而查询状态为1的记录,则索引基本无用.如果两种状态的记录数相差无几的话,索引也基本无用. 所有的关于索引的文章,建议你不要为这种字段建索引的依据,都是以值分布是均匀为前提的.但如果

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

[DB][MySql]关于取得自增字段的值、及@@IDENTITY 与并发性问题

对于刚从Oracle转向MySql的人都会为,MySql中没有Oracle里的Sequence而感到困惑.MySql中没有了Sequence,那么MySql的主键用什么方式来实现最好呢? 主要有下面几种方式: 1.自增字段作为主键. [推荐方案] MySql尽管比Oracle少了Sequence,可是多了字段的自增长特性. 插入完了以后能够通过运行[SELECT @@IDENTITY]获取上一条插入语句中生成的自增长字段的值. 这个语句非常特别,没有关联到特定的SQL语句,会 让人感觉迷糊,他究

C#获得数据库指定字段的值

获得数据库指定字段的值,赋给本地变量 如下,获得userinfo数据表里的字段"userid"."orgid", string userid=""; string orgid=""; using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE)) { con.Open(); using (SQLiteCommand cmd = new SQL

SQL 拼接多个字段的值&一个字段多条记录的拼接

如student表: studentID studentName studentScore 01 Alice 90 02 Bill 95 03 Cindy 100 一.拼接多个字段的值 select studentID+‘-’+studentName+'-'+studentScore AS studentInfo from student 结果: 二.一个字段多条记录的拼接 select stuff((select '|'+studentName from student for xml pat