【问题标题】:How to set the foreign key in sql server如何在sql server中设置外键
【发布时间】:2013-08-20 14:46:01
【问题描述】:

创建主键表的查询是

create table Users
(
    Id int identity (3000, 1),
    UserId as '08U1'+right('0000'+cast(Id as varchar(5)), 5) persisted,
    UserName varchar(50),
    LastName varchar(50),
    Location varchar(50),
    constraint PK_Users primary key (UserId)
)

参考表是

create table addre
(
    Ids int,
    address varchar(50),
)

我想Users表中的UserId主键引用表地址Ids作为外键如何设置。我知道相同的数据类型只用于设置外键。这里如何设置Ids的数据类型...

【问题讨论】:

  • 我完全不确定您要做什么。您能否添加一些示例数据(对于 both 表),其中显示一些应该与外键一起使用的行以及至少一个应该被外键拒绝的行?
  • 为什么不将数据类型更改为 addre 表中列 ID 的 varchar ?
  • 你不是说表addr引用Users吗?也就是说,addr 具有 Users 的外键

标签: sql sql-server


【解决方案1】:

将用户 ID 更改为此

UserId as CAST('08U1'+right('0000'+cast(Id as varchar(5)), 5) AS char(9)) persisted

所以char(9) 是所需的任何数据类型

【讨论】:

  • 已经创建的外来但没有在Ids中存储UserId的值
  • 外键不会自动填充。使用示例 SQL 和数据提出另一个问题
猜你喜欢
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
相关资源
最近更新 更多