【发布时间】:2016-11-07 14:24:59
【问题描述】:
我需要找到的是重新创建一些表的过程,使用了哪些数据源,如果有的话是哪些脚本&c。那么,如果表是手动创建的还是通过查询创建的,以及数据是从外部数据还是从数据库中现有的表/视图导入的,是否有可能以某种方式区分,可能是在系统视图或类似视图中?我已经知道谁创造了,什么时候创造的。我几乎筛选了整个数据库而没有结果,现在我正在寻找元数据中的提示。
【问题讨论】:
-
没有这样的元数据。与存储过程不同,表仅作为其内部表示形式存储。创建它们的脚本不会记录在任何地方。从引擎的角度来看,没有办法“手动创建表”——所有事情最终都会发生在(可能生成的)
CREATE TABLE语句中。 (或者SELECT INTO,如果你想学究气的话。) -
没有办法知道创建表的来源。想想这个……到头来都只是在执行一个sql脚本。 SSMS 只是为您创建一个脚本并执行它。
-
您可以使用RedGate等第三方工具找到create table语句。当您将数据库项目关联到您的解决方案中时,您可以找到另一种方法。在这两种情况下,您可以搜索 create table 'TableName'。
-
附带说明,如果您想监控 CREATE TABLE 事件,您可能需要查看DDL Triggers。
标签: sql-server metadata