我有一个查询,可以查找与某个数据库的列名匹配的所有表和视图。我正在使用SQL SERVER 2008
SELECT table_name FROM information_schema.columns
WHERE column_name = 'product_name'
我想扩展查询的功能,以便在所有数据库中搜索,甚至查找具有我搜索的列名的存储过程。
在数据库中查找代码,我发现的最简单的方法是在每个数据库中放置一个带有以下SQL的视图,然后放入一个主视图,在数据库中对它们进行UNIONs。如果你有很多数据库或一些你不能触摸的数据库,这有点痛苦,但在其他方面对我来说很好。
select
s.name as SchemaName,
objs.name as ObjectName,
objs.ObjectType,
OBJECT_DEFINITION(objs.object_id) AS ObjectDefinition
from
(SELECT object_id, name, 'Proc' as ObjectType
FROM sys.procedures p
UNION
select object_id, name, 'View'
from sys.views
UNION
SELECT object_id, Name, type
FROM sys.objects o
WHERE o.[type] IN ('fn', 'fs', 'ft', 'if', 'tf')) objs
inner join sys.objects o
on objs.object_id=o.object_id
inner join sys.schemas s
on o.schema_id=s.schema_id
列(就像在服务器上任何数据库的抽象表中查找列一样),您可以做同样的事情,只需合并信息架构,但这对我想要的不起作用,所以我正在寻找一个更通用的解决方案-如果我找到它,将添加它!
您可以使用此查询查找SP/视图或函数中使用的字段名
SELECT
OBJECT_NAME(object_id) as 'Procedure/Function/View Name',
definition
--,*
FROM sys.sql_modules
WHERE
( definition LIKE '%' + '<Your_Field_Name>' + '%' )
此脚本将在所有数据库的所有表中搜索您的列。
Create table #yourcolumndetails(DBaseName varchar(100), TableSchema varchar(50), TableName varchar(100),ColumnName varchar(100), DataType varchar(100), CharMaxLength varchar(100))
EXEC sp_MSForEachDB @command1='USE [?];
INSERT INTO #yourcolumndetails SELECT
Table_Catalog
,Table_Schema
,Table_Name
,Column_Name
,Data_Type
,Character_Maximum_Length
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like ''%yourcolumnname%'''
select * from #yourcolumndetails
Drop table #yourcolumndetails
问题内容: 考虑有一个名为的表: 该表在PeopleDb数据库中 现在,我想找到“ Mike”关键字。情况 : 我不知道要搜索哪个数据库,表。 我需要一个查询,它在所有数据库和表中进行搜索, 并向我显示以下内容: | Id | DatabaseName | TableName | ColumnName | Pk | SearchValue | 1 | ‘PeopleDb’ | ‘People’ |
问题内容: 我想从MySQL数据库的所有表的所有字段中搜索给定的字符串,可能使用如下语法: 有可能做这样的事情吗? 问题答案: 您可以浏览模式。它具有所有表和表中所有字段的列表。然后,您可以使用从该表获得的信息来运行查询。 涉及的表是SCHEMATA,TABLES和COLUMNS。有一些外键,使您可以准确地建立在模式中创建表的方式。
问题内容: 该查询将在数据库中搜索特定的列名。我想更进一步,并在返回的列中搜索特定值。 有任何想法吗? 非常感谢 问题答案: 没有此类搜索的系统表。鉴于您可以尝试此目的 谢谢 马诺吉
问题内容: 我目前正在尝试完成一个项目,其中的规范是使用搜索表单来搜索包装数据库。该数据库具有许多变量,包括大小,名称,类型和肉类。我需要创建一个搜索表单,用户可以在其中使用多种不同的搜索进行搜索(例如搜索50厘米长的盖子托盘)。 我花了整整一天的时间来尝试创建一些PHP代码,这些代码可以在我创建的测试数据库中搜索信息。我遇到了许多错误,从mysql_fetch_array错误,布尔错误到现在,我
问题内容: 如何在SQL Server中搜索表的所有列? 问题答案: 如果您正在寻找完全的全场比赛。如果要查找子字符串匹配项,则必须进行很长的路要走:
问题内容: 如何在给定数据库的所有存储过程中全局搜索关键字? 我使用了以下内容,但无法获得预期的结果… 问候-Vas 问题答案: 看一下此链接-http: //www.sqlservercentral.com/scripts/T-SQL+Aids/31131/,看看是否有帮助。 链接文章中的SP由Prasad Bhogadi编写,内容如下: 您可以使用它在数据库中创建一个SP或使其适应一次查询。