我将一个表的标识值存储到外键中的另一个表中,但在尝试创建关系时,I得到一个错误332我将一个表的身份值存储到外键中的另一个表中,但是当它建立关系时,它给了我错误
ALTER proc [dbo].[spRegisterUser]
@Doj date,
@UserName nvarchar(100),
@Password nvarchar(10),
@Reference nvarchar(50),
@Aadhar nvarchar(50),
@Email nvarchar(50)
AS
BEGIN
Declare @count int
Declare @ReturnCode int
Select @count = COUNT(UserName)
from tblUsers where UserName = @UserName
if @count > 0
Begin
Set @ReturnCode = -1
End
Else
Begin
Set @ReturnCode = 1
insert into tblUsers (DoJ,UserName,Password,Reference,Aadhar,Email)
Output inserted.User_ID into tblUserProfiles(UserID)
values (@DoJ,@UserName,@Password,@Reference,@Aadhar,@Email)
End
Select @ReturnCode as ReturnValue
end
错误是:
的OUTPUT INTO子句的目标表“tblUserProfiles”不能是一个(主键,外键)的关系的任一侧。找到参考约束'FK_tblUserProfiles_tblUsers'。
如何克服这个问题?我需要PK FK关系,我也希望FK值自动保存在列中。
请为我找到解决方案。由于
怎么样代码?你如何创建你的数据库?没有这些信息,就不可能找出错误。 – 2016-07-05 01:17:54
您正在插入一条记录。没有理由完全使用输出子句。只需使用一个变量来保存@@ SCOPE_IDENTITY,并且您还好 – cha
@cha。 。 。这确实是非常糟糕的建议。从'insert'返回id的正确方法是OP如何使用'OUTPUT'来执行操作。 –