尝试使用重命名MS SQL中的密钥
sp_rename 'FK_Catalog_Equipment__Equiements_Catalog_Client_Clients','FK_Catalog_Equipment__Equipments_Catalog_Client_Clients','OBJECT'
Run Code Online (Sandbox Code Playgroud)
要么
sp_rename 'Table_Name.FK_Catalog_Equipment__Equiements_Catalog_Client_Clients','FK_Catalog_Equipment__Equipments_Catalog_Client_Clients','OBJECT'
Run Code Online (Sandbox Code Playgroud)
但这两个命令都会导致
Msg 15248, Level 11, State 1, Procedure sp_rename, Line 359
Either the parameter @objname is ambiguous or the claimed @objtype (OBJECT) is wrong.
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
Pan*_*vos 11
外键约束是单个对象,这就是为什么你不能拥有与其他对象同名的FK.因此,它们的名称与架构相关.
从sp_rename的文档示例复制:
sp_rename 'HumanResources.FK_Employee_Person_BusinessEntityID', 'FK_EmployeeID';
Run Code Online (Sandbox Code Playgroud)
将重命名FK_Employee_Person_BusinessEntityID在HumanResources架构中找到FK_EmployeeID
如果缺少架构,SQL Server将在用户的默认架构中查找对象,该架构通常是dbo架构.如果在其他模式中创建FK,则需要明确指定它
尝试这个
exec sp_rename '<SchemaName>.FK_Catalog_Equipment__Equiements_Catalog_Client_Clients',
'FK_Catalog_Equipment__Equipments_Catalog_Client_Clients', 'object'
Run Code Online (Sandbox Code Playgroud)
欲了解更多详情,请点击此处
否则删除约束,然后重命名,然后重新添加约束是一种简单的方法。但成本是巨大的,因为创建新约束必须验证现有数据。
ALTER TABLE <TableName>
DROP FOREIGN KEY 'FK_Catalog_Equipment__Equiements_Catalog_Client_Clients',
ADD CONSTRAINT `FK_Catalog_Equipment__Equipments_Catalog_Client_Clients`
FOREIGN KEY (`<tag_id>`) REFERENCES `tags` (`<id>`);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7037 次 |
| 最近记录: |