【问题标题】:Accessing USer-Defined Type in SQL Server 2008 R2在 SQL Server 2008 R2 中访问用户定义的类型
【发布时间】:2012-09-11 15:18:54
【问题描述】:

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

【问题讨论】:

  • 它必须存在于其他数据库中。
  • 这就是我的想法,但它不适合我。我需要进行配置吗?可能正在指定访问级别?
  • “不适合我”是什么意思?
  • 我无法在除 master 之外的所有其他数据库中访问用户定义函数
  • 是的,该类型必须存在于您所在的数据库中。您可以在模型中创建它,以便在新数据库中创建它(在 tempdb 中,也可能需要它)。跨度>

标签: sql sql-server-2008-r2 user-defined-functions sql-function


【解决方案1】:

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

话虽如此,我已经写了为什么你可能不想这样做 - 主要是关于改变它们是多么令人难以置信的痛苦:

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 2011-08-02
    • 1970-01-01
    • 2011-08-08
    • 2014-05-21
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2012-07-26
    相关资源
    最近更新 更多