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