Sql server SSDT未在未解析的引用上引发编译错误
我最近将一个现有数据库迁移到SQLServerSSDT项目。迁移之后,它在引用其他数据库的某些视图中抛出编译错误(SQL71561)。我通过添加数据库引用解决了这些问题,并在存储过程/视图中使用[$(数据库)]替换了数据库的用法 但是,我注意到存储过程(或函数/存储过程)中仍然存在其他数据库的一些现有引用,SSDT并没有为它们抛出编译错误,相反,我可以看到有一个警告 警告SQL71562:函数:[dbo]。[函数名称]包含 对对象的未解析引用。该对象不存在,或者 引用不明确,因为它可以引用 以下对象 在这种情况下,它会抛出什么警告而不是错误?i、 e.为什么它对某些存储过程抛出错误,而对其他存储过程抛出警告Sql server SSDT未在未解析的引用上引发编译错误,sql-server,sql-server-data-tools,Sql Server,Sql Server Data Tools,我最近将一个现有数据库迁移到SQLServerSSDT项目。迁移之后,它在引用其他数据库的某些视图中抛出编译错误(SQL71561)。我通过添加数据库引用解决了这些问题,并在存储过程/视图中使用[$(数据库)]替换了数据库的用法 但是,我注意到存储过程(或函数/存储过程)中仍然存在其他数据库的一些现有引用,SSDT并没有为它们抛出编译错误,相反,我可以看到有一个警告 警告SQL71562:函数:[dbo]。[函数名称]包含 对对象的未解析引用。该对象不存在,或者 引用不明确,因为它可以引用 以下
编辑:是因为视图是严格键入的,而存储过程不是 它部分地模仿了T-SQL的行为,这就是所谓的延迟编译<代码>创建过程p作为SELECT*FROM foo不是错误,即使没有
foo
(在T-SQL中它甚至不是警告),但是创建视图v作为SELECT*FROM foo
是。是的,现在有意义了。非常感谢你。