昨天我们无法再部署我们的RoR应用程序。这是我们在日志中找到的:(将实际表名改为" table_name")
ERROR -- : TinyTds::Error: There is no text for object 'table_name'.: EXEC sp_executesql N'EXEC sp_helptext [table_name]'
当我们在数据库上执行此语句时,我们得到了:
execute sp_helptext table_name
Msg 15197, Level 16, State 1, Procedure sp_helptext, Line 107
There is no text for object 'table_name'.
我们找到了它的原因:我们在SQL Server 2012数据库中同时拥有一个表和一个具有相同名称的视图,但是在另一个模式中:该表名为dbo.table_name,视图为dm.table_name。这会以某种方式激起ActiveRecord为该表运行sp_helptext(或视图?ActiveRecord也不会传递模式名称,因为它应该.Tssk,tssk)。
解决方案/解决方法是将视图重命名为dm.table_name _
之类的其他内容我们无法谷歌解决方案。花了一些时间才弄明白这一点。希望这篇文章对某人有所帮助。