2012-03-08 86 views
1

我正在寻找一种方法来获取附加到SQL Server 2000中的数据库的所有表创建和变更查询。这是存储在系统表中,或存在内置的方法来重制它们?查询SQL Server 2000的表创建和修改查询

目标:提取可定制备份的模式。

我迄今为止的研究没有发现任何东西。我的Google-Fu很弱...

+0

你可以定义“附加到数据库的查询”吗?你能解释一下你的“可定制的备份”将会实现“BACKUP DATABASE”不会? – 2012-03-08 18:31:03

+0

@AaronBertrand通过附加到数据库的查询,我的意思是与数据库拥有的表相关的所有创建和变更查询。我需要创建某些表的备份,而不是所有的表作为'BACKUP DATABASE'来做。 – MPelletier 2012-03-08 18:34:09

+0

您可以将这些表放在他们自己的文件组上,并执行基于文件组的备份。 – 2012-03-08 18:44:27

回答

1

请注意,我不知道有一种方法可以指定存储过程位于哪个文件组(缺省情况除外)。那么,你可以考虑,以至少保持脚本库备份小,是:

  1. 创建一个名为non_data_objects文件组,并使其成为默认的(而不是PRIMARY)。
  2. 为每组表创建一个文件组,并在那里创建这些表。
  3. 通过文件组备份每组表,并且总是包含non_data_objects的备份,以便您拥有属于这些表的当前一组过程,函数等等(即使您也可以获得其他表)。因为1.只包含非数据的元数据,所以它应该相对较小。

您可能还会考虑为每组表使用不同的数据库。除了在需要引用不同集合的脚本中使用三部分命名外,实际上没有性能差异。这使您的备份/恢复计划变得更简单。

+0

是的,不同的数据库部分是最初的方法。尽管这是一个传统程序(SQL Server版本是其年代的一个标志),但它的设计太糟糕了,并且与其他系统很难整合以便轻松更改。 – MPelletier 2012-03-08 18:58:05

+0

如果是2005年,你可以很容易地使用同义词来掩盖所有这些。在2000年,你正在处理12年前不支持的技术,所以你会有一些限制。 :-) – 2012-03-08 19:05:57

+0

那么,备份操作的一部分就是迁移到一个更新的平台,所以还是有希望的。 – MPelletier 2012-03-08 19:07:24