一尘不染

sql 2005强制表重命名具有依赖项

sql

您如何强制重命名???

表’dbo.x的重命名失败。(Microsoft.SqlServer.Smo)

要获取帮助,请单击:http
:
//go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+(((Katmai_PCU_Main).090329-1045+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates
.FailedOperationExceptionText&EvtID = Rename + Table&LinkId =
20476


执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)


无法重命名对象’[dbo]。[x]’,因为该对象参与了强制性依赖关系。(Microsoft SQL Server,错误:15336)

要获取帮助,请单击:http
:
//go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=15336&LinkId=20476


阅读 178

收藏
2021-03-17

共1个答案

一尘不染

找到“强制依赖性”,然后删除或禁用它们。

“强制依赖关系”表示架构绑定,因此您必须专门为此进行查找。

这是一个查询,用于查找对您的对象的架构绑定引用:

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

正如我在评论中指出的那样, 没有 办法 强制覆盖模式绑定。当您使用架构绑定,你明确地说,“难道 没有 让我或其他人覆盖。”
解决方案绑定的唯一方法是撤消它,这是有意的。

2021-03-17