搜索字段的所有视图

时间:2015-01-07 21:40:03

标签: sql-server-2008

我正在使用SQL Server 2008,我需要查找仍在使用的包含旧命名约定的视图,以便我可以更新字段名称。这些视图都是一个服务器和服务器的核心。数据库,但我不太确定这样做的语法。这就是我目前所获得的数据库中所有视图的列表,但是如何搜索列表中的每个视图名称以查看它们是否包含一个名为(仅限示例)的字段TaxYear

Create Table #T (ID Int Identity Not Null, ViewNames VARCHAR(1000)
Insert Into #T (ViewNames)
Select '['+C.Table_Catalog+'].['+C.Table_Schema+'].['+C.Table_Name+']' TableName
FROM Information_Schema.Columns c
Join information_schema.Tables T on C.Table_Catalog = T.Table_Catalog 
AND C.Table_Schema = T.Table_Schema
AND C.Table_Name = T.Table_Name
Where T.Table_Type = 'View'
Group By '['+C.Table_Catalog+'].['+C.Table_Schema+'].['+C.Table_Name+']'

2 个答案:

答案 0 :(得分:1)

我使用这样的东西:

SELECT OBJECT_NAME(object_id)  as OBJ_NAME 
FROM sys.sql_modules 
WHERE OBJECTPROPERTY(object_id, 'IsView') = 1 
AND definition LIKE '%mySearchString%' 
order by OBJ_NAME

这将返回视图的名称。我还通过更改" IsView"来使用它来搜索存储过程。 to" IsProcedure"

答案 1 :(得分:0)

这个方法花了一点时间,我相信我在代码项目中发现了这个并多次使用它

select table_name, column_name 
from information_schema.columns
where column_name like '%taxyear%'