在SQL Server 2008 R2中访问USer定义的类型



我在主数据库(系统数据库)下的SQL Server中有一个用户定义的类型。当我引用Master数据库(即使用Master)时,它几乎可以工作。但是,我无法从其他数据库访问该类型。我是否必须将其添加到其他数据库中,或者即使在当前可用的位置也可以引用它?如何在所有可用的数据库中访问它?

您需要在每个数据库中创建EthiopanDate类型的副本。db_x中的代码将无法在master中看到EthiopanDate,反之亦然。这也可能是临时对象的问题——要在任何列中创建具有该数据类型的临时表,该类型也需要存在于tempdb中。因此,可以将类型添加到模型数据库中(这将在每次启动时将其放置在tempdb中,以及在服务器上直接创建的每个未来数据库中),也可以在启动过程中添加显式创建。

话虽如此,我已经写过为什么你无论如何都不想这么做了——这主要是关于改变它们是多么令人难以置信的痛苦:

  • 要改掉的坏习惯:使用别名类型

相关内容

最新更新