sql查询数据库中有某个值的所有表

我现在只知道数据库中有这么一个值(比如‘123’)要求输出有这个值(123)的所有表或者:我想知道某个值在数据库中的位置sql语句USER_TABLES无效不是含123的... 我现在只知道数据库中有这么一个值(比如‘123’)
要求输出有这个值(123)的所有表
或者:我想知道某个值在数据库中的位置 sql语句
USER_TABLES 无效
不是含123的表名 是表中含有123这个值的表
展开
 我来答
电子科技小百科
高粉答主

2020-05-08 · 繁杂信息太多,你要学会辨别
知道答主
回答量:4367
采纳率:0%
帮助的人:70.5万
展开全部

1、首先在电脑中打开Microsoft SQL Server,查询所有数据库。

2、查询当前数据库中所有表名。说明:xtype='U':表示所有用户表,xtype='S':表示所有系统表。

3、查询指定表中的所有字段名。

4、然后查询指定表中,所有字段名和字段类型。

5、接着获取主键字段,获取数据库所有类型,就完成了。

百度网友faadf46
高粉答主

2020-05-08 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:73.8万
展开全部

1、查询所有数据库。

2、查询当前数据库中所有表名,说明:xtype='U':表示所有用户表,xtype='S':表示所有系统表。

3、查询指定表中的所有字段名。

4、查询指定表中的所有字段名和字段类型。

5、获取主键字段。

6、获取数据库所有类型。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9ef78f420
推荐于2018-04-12 · TA获得超过103个赞
知道答主
回答量:46
采纳率:0%
帮助的人:39.9万
展开全部
CREATE PROCEDURE dbo.FindString
@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

别人写的一个存储过程的例子,看看对你有没有用...
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Saberの使魔fdf
2018-10-30 · 超过21用户采纳过TA的回答
知道答主
回答量:84
采纳率:55%
帮助的人:19.5万
展开全部
--搜索所有表列数据
DECLARE @string VARCHAR(100)='123' --要查询的数据,内容自行修改
DECLARE @sql NVARCHAR(MAX)
SET @sql=N'DECLARE @sql NVARCHAR(MAX),@ColNames NVARCHAR(MAX),@ColValues NVARCHAR(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_MsforeachTable @command1=@sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yxc0433
2010-01-19 · TA获得超过158个赞
知道答主
回答量:77
采纳率:0%
帮助的人:70.1万
展开全部
oracle中查看表名包含 123的 所有表

SELECT TABLE_NAME FROM USER_TABLES
WHERE TABLE_NAME LIKE '%123%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式