我有一个数据库,其中包含我在多个数据库中使用的常用功能。其中一个函数将表作为参数,即用户定义的TYPE。我想知道是否有办法从另一个数据库调用此函数。
我试图在其他数据库中定义类型,如下所示:
DECLARE @bits as Common.dbo.Bits
但是我收到了错误太多的前缀
我尝试将TYPE添加到每个数据库,然后将该类型的表传递给公共数据库中的函数,但是我得到了错误
操作数类型冲突:位与位
不兼容
答案 0 :(得分:7)
你做不到。即使您在两个数据库中以相同的方式声明类型,它们也不会被视为相同。并且DECLARE
语句只允许使用模式名称和对象名称,因此无法从其他数据库引用类型。
另请参阅this question了解一些可能的解决方法(如果您控制所涉及的两个数据库)
答案 1 :(得分:5)
根据Creating User-Defined Data Types:
如果在模型数据库中创建了用户定义的数据类型,则为 存在于所有新的用户定义数据库中。但是,如果数据类型是 在用户定义的数据库中创建,数据类型仅存在于该数据库中 用户定义的数据库。