Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
最近项目中发现一怪问题,使用DB项目发布数据库时,总提示
“(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level 16, State 56, Procedure sp_refreshsqlmodule_internal, Line 67 Lock request time out period exceeded.
An error occurred while the batch was being executed.”
百般尝试终不得其解,后google看到一篇文章,按里面的说明尝试了一下,结果问题解决了。
文章地址:https://ask.sqlservercentral.com/questions/37428/using-syssp-refreshsqlmodule-with-objects-that-hav.html#
原因:有人重命名视图造成的
通过下面的方法,把数据库所有视图命名重新规范一下,问题得到解决。
DROP VIEW testObjectView --删除现有视图名称
GO
CREATE VIEW testView AS SELECT * FROM [sys].[objects] --创建视图
GO
exec [sp_rename] 'testView', 'testObjectView' --重命名视图
GO
exec [sp_refreshview] N'dbo.testObjectView' --刷新视图