用户在数据库中定义TYPE

Bau*_*uer 9 t-sql user-defined-functions sql-server-2008

我有一个数据库,其中包含我在多个数据库中使用的常用功能.其中一个函数将表作为参数,即用户定义的TYPE.我想知道是否有办法从另一个数据库调用此函数.

我尝试在其他数据库中定义类型,如下所示:

DECLARE @bits as Common.dbo.Bits
Run Code Online (Sandbox Code Playgroud)

但是我收到的错误太多了前缀

我已经尝试将TYPE添加到每个数据库,然后将该类型的表传递给公共数据库中的函数,但是我得到了一个错误

操作数类型冲突:位与位不兼容

Dam*_*ver 7

你不能.即使您在两个数据库中以相同的方式声明类型,它们也不会被视为相同.并且该DECLARE语句只允许使用模式名称和对象名称,因此无法从另一个数据库引用类型.

有关可能的解决方法,请参阅此问题(如果您控制所涉及的两个数据库)

  • 不幸的是,这不是我想听到的答案.谢谢 (2认同)

Vik*_*ram 5

根据创建用户定义的数据类型:

如果在model数据库中创建了用户定义的数据类型,则它存在于所有新的用户定义的数据库中.但是,如果在用户定义的数据库中创建数据类型,则数据类型仅存在于该用户定义的数据库中.