SQLSERVER 如何查询整个数据库中某个特定值所在的表和字段
sqlserver数据库中怎么查询某个字段中含有某些字?
一、举个例子
表名为zwj,字段为sp,查询sp字段中含有'所有'的语句为select * from zwj where sp like '%所有%' --表名为zwj,字段为sp,查询sp字段中含有'所'或'有'的语句为select * from zwj where sp like '%所%' or sp like '%有%'
二、含有医院编号字段的所有表
select a.[name] 表名 from sysobjects a,
( select [id],count(*) b from syscolumns
where [name] ='HospitalId'
group by [id])
b where a.[id]=b.[id]
三、同时含有医院编号和科室编号字段的所有表
select a.[name] 表名 from sysobjects a
left join
(select [id],count(*) b from syscolumns where [name]
in('HospitalId','DepartmentId') group by [id] having count(*)>1) b
on a.[id]=b.[id]
where b.id is not null
用like语句查询。
举例:
表名为zwj,字段为sp,查询sp字段中含有'所有'的语句为:select * from zwj where sp like '%所有%'
表名为zwj,字段为sp,查询sp字段中含有'所'或'有'的语句为:select * from zwj where sp like '%所%' or sp like '%有%'。
mysql中怎么查询数据库中某个特定值所在的表和字段
网页链接
这个可以用
SQL数据库,如何查询数据库内含有某一列(某字段,如name)的所有表
1、如何查询数据库内含有某一列(某字段,如name)的所有表名。rn2、查询数据库内含有字段(如 name=‘AAA’)的数据库内多有的表名。SQL数据库,查询包含列(字段,如名称)的数据库中的所有表的步骤如下:需要准备的材料是:计算机,sql finder。
1,首先,打开sql查询器并连接到相应的数据连接,例如测试库。
2,单击“查询”按钮并键入:select table_name来自information_schema.columns,其中table_schema =“test”和column_name =“name”;。
3,单击“运行”按钮,将查询符合条件的表名称。
4,将查询调整为:选择'store'作为table_name,`name`来自商店,其中`name` =“A”union all选择'stu'作为table_name,`name`来自stu where`name` =“A”Union所有选择'test'作为table_name,`name`来测试`name` =“A”,单击“运行”按钮查找名称为'A'www.rixia.cc;的表的名称。
SQL数据库,查询数据库内含有某一列(某字段,如name)的所有表的步骤如下:
我们需要www.rixia.cc准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上相应的数据连接,,例如test库。
2、点击“查询”按钮,输入:select table_name from information_schema.columns where table_schwww.rixia.ccema="test" and column_name="name";。
3、点击“运行”按钮,此时会查询出符合条件的表名。
4、将查询语句调整为:select 'store' as table_name, `name` from store where `name`="A" union all select 'stu' as table_name, `name` from stu where `name`="A" union all select 'test' as table_name, `name` from test where `name`="A",点击“运行”按钮,即可查到含name='A'的表名。
1.
select OBJECT_NAME(id) from syscolumns where id in(
select id from sysobjects where type='U')
and name='姓名'
2.第二个问题更简单了
select OBJECT_NAME(id) from syscolumns where id in(
select id from sysobjects where type='U')
and name like '%类型%'
有问题再追问吧。
http://blog.sina.com.cn/s/blog_9f39f0c70102ux87.html
里面的第一篇:标题是:1、给定字符串查找表。
祝你成功!
sql查询数据库中有某个值的所有表
我现在只知道数据库中有这么一个值(比如‘123’)rn要求输出有这个值(123)的所有表1、首先在电脑中打开Microsoft SQL Server,查询所有数据库。
2、查询当前数据库中所有表名。说明:xtype='U':表示所有用户表,xtype='S':表示所有系统表。
3、查询指定表中的所有字段名。
4、然后查询指定表中,所有字段名和字段类型。
5、接着获取主键字段,获取数据库所有类型,就完成了。
1、查询所有数据库。
2、查询当前数据库中所有表名,说明:xtype='U':表示所有用户表,xtype='S':表示所有系统表。
3、查询指定表中的所有字段名。
4、查询指定表中的所有字段名和字段类型。
5、获取主键字段。
6、获取数据库所有类型。
DECLARE @string VARCHAR(100)='123' --要查询的数据,内容自行修改
DECLARE @sql NVARCHAR(MAX)
SET @sql=N'DECLARE @sql NVARCHAR(MAX),@ColNames NVARCHAR(MAX),@ColValues NVARCH日夏养花网AR(MAX);SET @ColNames=NULL;SET @ColValues=NULL;
SELECT @ColNames=ISNULL(@ColNames+'','','''')+QUOTENAME(c.[Name])
,@ColValues=ISNULL(@ColValues, ''''''''+OBJECT_NAME(c.object_id)+''''''''+'' AS [TableName]'')+'',''+ ''RTRIM(CONVERT(NVARCHAR(max),''+QUOTENAME(c.[Name])+'')) AS ''+QUOTENAME(c.[Name])
FROM sys.[columns] AS c where c.object_id=object_id(N''?'');
set @sql= ''SELECT * FROM (SELECT ''+ @ColValues+'' FROM ''+''?''+'' ) as t UNPIVOT(ColumnValue FOR ColumName IN (''+@ColNames+'')) u WHERE CHARINDEX('''''+@string+N''''',ColumnValue)>0'';
print @sql;
EXEC(@sql)'
PRINT @sql
EXEC sp_MsforeachTawww.rixia.ccble @command1=@sql
@string NVARCHAR(100)
AS
DECLARE @SQL NVARCHAR(4000);
SET @SQL = N'
DECLARE @str NVARCHAR(4000);
SELECT
@str = ISNULL(@str + N'' OR '' + c.name + N'' LIKE N''''%'
+ @string + ' %'''''',
c.name + N'' LIKE N''''%' + @string +'%'''''') FROM syscolumns AS c JOIN systypes AS t ON c.id=OBJECT_ID(''?'')
AND c.xtype=t.xtype
AND t.name IN(''varchar'',''char'',''nvarchar'',''nchar'');
SET @str = ''SELECT TOP 1 1 FROM ? WHERE ''+@str;
CREATE TABLE #tb(a int);
INSERT #tb(a) EXEC(@str);
IF EXISTS(SELECT * FROM #tb)
PRINT ''?''
';
EXEC sp_MsforeachTable @SQL;
GO
别人写的一个存储过程的例子,看看对你有没有用...
SELECT TABLE_NAME FROM USER_TABLES
WHERE TABLE_NAME LIKE '%123%'
文章标签: