我正在开发一个 SQL Server 2008 Db,其中包含许多表(大约 200 个)。其中许多表包含一个名为“CreatedDate”的字段。我正在尝试使用此特定字段识别所有表架构。
是否有执行此操作的 SQL 查询?
我正在开发一个 SQL Server 2008 Db,其中包含许多表(大约 200 个)。其中许多表包含一个名为“CreatedDate”的字段。我正在尝试使用此特定字段识别所有表架构。
是否有执行此操作的 SQL 查询?
我会查询 information_schema - 这具有比基础表更具可读性的视图。
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%create%'
您也可以尝试使用许多可用的第三方工具之一来执行此操作。
查询非常适合简单的搜索,但如果您需要对数据进行更多操作,请搜索引用,这样您就可以更好地处理这些。
此外,当某些对象被加密并且您需要搜索时,这些会非常方便
我使用的是免费的ApexSQL Search,但市场上还有更多(也是免费的),例如 Red Gate 或 SSMS Tool Pack。
select object_name(c.object_id) as table_name
, schema_name(t.schema_id) as schema_name
from sys.columns c
join sys.tables t on c.object_id = t.object_id
where c.name=N'CreatedDate';
如果您还需要其他表属性,它会变得有点复杂,但您将参考对象目录视图,如sys.tables、sys.columns等。
我最喜欢的...
SELECT objParent.name AS parent, obj.name, col.*
FROM sysobjects obj
LEFT JOIN syscolumns col
ON obj.id = col.id
LEFT JOIN sysobjects objParent
ON objParent.id = obj.parent_obj
WHERE col.name LIKE '%Comment%'
OR obj.name LIKE '%Comment%'
上面我正在搜索“评论”。
如果您想要直接匹配,请删除百分号。
这会搜索表、字段和主键名称、约束、视图等内容。
当您想在处理表之后在 StoredProcs 中搜索(并且需要使 procs 匹配),请使用以下...
SELECT name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%Comment%'
希望对您有所帮助,我发现这两个查询非常有用。
对我来说,我只有读取权限才能运行查询,所以我需要经常使用这个函数,这就是我使用的:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
where TABLES.TABLE_NAME like '%your table name here%'
您可以将 .TABLES 替换为 .COLUMNS ,然后它看起来像这样:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE columns.COLUMN_NAME like '%your column name here%'
使用此查询:
SELECT
t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name , *
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
Where
( c.name LIKE '%' + '<ColumnName>' + '%' )
AND
( t.type = 'U' ) -- Use This To Prevent Selecting System Tables
同样的事情,但以 ANSI 方式
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'CreateDate')
您无需在 SQL Server 2008 中为此键入 SQL 查询。
在 SSMS Object Explorer 中选择所需数据库的 Databases 或 Tables(如果您需要在一个数据库中搜索),打开菜单 View--> Object Explorer Details(或者按 F7),在 Search 文本框中输入 %CreatedDate%,回车,享受