更改外键,使其指向另一个表

时间:2014-01-06 00:50:22

标签: asp.net sql

我一直在网上,我只是找到解决方案,解决方案,删除和添加约束等。首先,我的Transaction表中有一个外键,指向一个以UserName为主键的Users表,因为Transactions表必须记录哪个用户添加或修改了哪个记录。但是现在程序的规格发生了变化,因为我最终使用了ASP.Net提供的表,即aspnet_Users表。我现在要指出UserIDaspnet_Users主键的外键。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

JamesP,

如果您能够提供一些架构信息,那将会更有帮助。但是,我怀疑您的Users表用户名是varchar数据类型,UserIDuniqueidentifier数据类型。因此,您还需要确保UserID表上的Transaction字段为uniqueidentifier数据类型。如果已完成此操作且所有受影响的行已相应更新,则只需使用“关系”功能修改管理工作室中的外键关系属性即可。

如果您想纯粹在SQL中执行此操作,则需要删除现有关系,例如(psudo code)

ALTER TABLE [Transaction] DROP CONSTRAINT [<constraintName>]

重新创建约束。

ALTER TABLE [Transaction] ADD CONSTRAINT [<constraintName>] FOREIGN KEY([UserID]) REFERENCES [aspnet_Users](UserID)

干杯。