我在SQL 2005中有一个UDF,我需要schemabind,因为它在我需要索引的视图中使用。
此UDF从位于不同数据库(同一服务器)的表中获取信息,然后是UDF所在的表。
由于将表指定为[DBName] .dbo。[Tablename]无效,有没有办法可以从其他数据库的表中获取信息?
答案 0 :(得分:1)
模式绑定应该保证一致性。但是,无法保证两个不同数据库之间的一致性,因此无法跨两个不同的数据库进行模式绑定。换句话说,它是不可能实现的。
想象一下,例如,一个数据库恢复到较早的时间点 - 索引视图上的索引将变得损坏,查询将返回错误的结果。
答案 1 :(得分:0)
如果您的UDF在Database1中,并且需要从Database2中的表访问数据,您所要做的就是在Database1中创建一个视图,该视图从Database2中的表中获取您需要的数据。然后在UDF中使用此视图。
工作得很好,我多次使用这种方法。
希望它有所帮助。