SQL Query用于搜索所有表的模式

pen*_*ate 36 t-sql sql-server sql-server-2008 database-schema

我正在研究一个SQL Server 2008 Db,里面有很多表(大约200个).其中许多表包含名为"CreatedDate"的字段.我正在尝试使用此特定字段标识所有表架构.

是否有SQL查询来执行此操作?

Raj*_*ore 52

我会查询information_schema - 这个视图比底层表更具可读性.

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%create%'
Run Code Online (Sandbox Code Playgroud)


Dwo*_*olk 6

您也可以尝试使用可用于此的许多第三方工具之一.

查询非常适合简单搜索,但如果您需要对数据进行更多操作,请搜索引用,这样您就可以在这些方面做得更好.

此外,当某些对象被加密并且您需要搜索时,这些非常方便

我使用ApexSQL搜索是免费的,但也有更多的市场上(也是免费的),如红门或SSMS工具包.


Rem*_*anu 5

  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';
Run Code Online (Sandbox Code Playgroud)

如果您还需要其他表属性,它会变得更复杂,但您将引用对象目录视图,如sys.tables,sys.columns等.