在SQL2008查找某数据库中的列是否存在某个值

--SQL2008查找某数据库中的列是否存在某个值
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

--使用例子,查询库中存在aaa这个值的列:

exec spFind_Column_In_DB 1,'aaa'

转自:http://www.cnblogs.com/lyhabc/p/4150407.html

时间: 2024-08-04 13:52:15

在SQL2008查找某数据库中的列是否存在某个值的相关文章

怎么获得当前行(gridcontrol中)在数据库中某列的值?

该方法需要有GridView ds.Tables[0].Rows[gridView1.FocusedRowHandle]["数据库中某列的名字"].ToString(); 或者(该方法不需要有GridView) DataSet ds=new DataSet();  System.Windows.Forms.BindingManagerBase dsMgr;  dsMgr = this.BindingContext[ds.Tables[0]];  string ds中某列的值 = ds.

如何查找出数据库中包含的特殊字符???

问题描述 如何查找出数据库中包含的特殊字符??? 在数据库中因为含有特殊字符,如:'∑' , 'г' 这样的字符,要怎么查找呢?数据库中的数据是百万级别的,这种数据也就只有2-3条,如果没有排除掉这样的数据的话,网站前端会报错的.跪求~~~ 解决方案 我想知道这种数据是怎么存进数据库的,一开始存储的时候不加限制的?这种还是在后台过滤吧,数据库好像没啥好办法 解决方案二: 你用的是什么数据库.

如何让textbox中的信息更新到数据库中的列中

问题描述 如何让textbox中的信息更新到数据库中的列中 如何让textbox1和textbox2中的信息更新到数据库中的列中 解决方案 让textbox1和textbox2中的信息更新到数据库中,可以分为两步: (1) 从 textbox 中获取输入的数据,这个我想应该没有什么问题吧: (2)将数据写入数据库指定的列中,这个要看具体用的是什么数据库?个人如果对数据库不熟悉,就找点入门的资料看看. 解决方案二: using (SqlConnection connection = new Sql

VB.net MSchart画图绑定数据库中两列数据。

问题描述 VB.net MSchart画图绑定数据库中两列数据. 请问用MSchart画图时,怎么绑定数据库中两列数据,我用的数据库是access,希望大家帮忙帮忙. 解决方案 无论你用什么数据库,总能取到一个 DataTable吧. chart1.DataBindCrossTable(dt.DefaultView, "分组字段名", "x坐标字段名", "y坐标字段名", "", PointSortOrder.Ascendi

用SQL语句查询数据库中某一字段下相同值的记录方法

今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决.      以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法. 现在假设数据库表名为student,里面有字段Sno(学号),ID(身份证),这里提供两种查询的方法:

SQL Server数据库中伪列及伪列的含义详解

SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述. 这里主要是提到的RowId引起了一点思考. 那么,这个RowId是个什么玩意?能不能更加直观一点来看看RowId的信息?代表什么含义?这个当然也是可以的. Oracle中的表中有一个伪列的概念,就是在查询表的时候加上select rowid,* from Table,会

如何取得MYSQL中ENUM列的全部可能值

这里其实并不需要其它的什么函数来支持,只需要使用MYSQL提供的一些SQL语句就可以了. 这里为了简单起见,以MYSQL的系统表USER为例,取出SELECT_PRIV这一列的所有可能值. 方法:SHOW COLUMNS FROM table_name LIKE enum_column_name 小写的部分需要根据你的情况改变. 程序: //By SonyMusic(sonymusic@163.com) //HomePage(phpcode.yeah.net) $connect_hostname

查找sqlserver数据库中某一字段在 哪

  有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. CREATE PROCEDURE [dbo].[SP_FindValueInDB] ( @value VARCHAR(1024) ) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets fr

php查找mysql数据库中的所有表名

直接cmd命令模式下使用  代码如下 复制代码 show databases; show tables from db_name;   show columns from table_name from db_name; show index from talbe_name [from db_name]; show status; show variables; show [full] processlist; show table status [from db_name]; show gra