你如何强制重命名?
表’dbo.x.重命名失败. (Microsoft.sqlServer.Smo)
执行Transact-sql语句或批处理时发生异常. (Microsoft.sqlServer.ConnectionInfo)
对象'[dbo].[x]’不能重命名,因为对象参与强制的依赖关系. (Microsoft sql Server,错误:15336)
解决方法
找到“强制依赖”,然后删除或禁用它们.
通过“强制依赖”,它意味着Schema绑定,所以你必须专门查看.
这是一个查询以查找对象的模式绑定引用:
select o.name as ObjName,r.name as ReferencedObj from sys.sql_dependencies d join sys.objects o on o.object_id=d.object_id join sys.objects r on r.object_id=d.referenced_major_id where d.class=1 AND r.name = @YourObjectName
正如我在评论中指出的那样,没有办法强制覆盖Schema Binding.当您使用“架构绑定”时,您明确地说“不要让我或其他人重写”. Schema Binding的唯一方法是撤消它,这是有意的.