Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中设置外键_Sql_Sql Server - Fatal编程技术网

如何在sql server中设置外键

如何在sql server中设置外键,sql,sql-server,Sql,Sql Server,创建主键表的查询是 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 (U

创建主键表的查询是

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),
)
我想将用户表中的用户ID主键设置为参考表地址ID作为外键如何设置。我知道相同的数据类型只用于设置外键。在此处,如何设置ID的数据类型

将UserID更改为此

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

因此,
char(9)
是您所需要的数据类型,无论您想以何种方式使用它

我根本不确定您想做什么。您是否可以添加一些示例数据(对于两个表),其中显示一些应使用外键的行,以及至少一个应被外键拒绝的行?为什么不将addre表中列ID的数据类型更改为varchar?您不是指table
addr
references
Users
?也就是说,
addr
具有指向
Users的外键
已创建的外键,但它不在IdsA中存储UserId的值。外键不会自动填充。使用示例SQL和数据询问另一个问题