我的课程Person
包含字段:
班级Member
的字段为:
Member
继承自Person
。因此,在数据库中,它还包含字段Name
和First Name
。
当我直接创建成员时,我会在文本框中提供所有数据并将其发送到数据库。我创建成员时数据库会自动创建一个人,这很好。 但是,当我有一个现有的人时,我想用这个数据来创建一个成员,比如升级这个人,但没有数据库创建一个新的人记录,因为那是不需要的,因为我已经有了这个人记录。
如何在C# and MVC
完成此操作?
PS:DBMS is SQL Server 2008
答案 0 :(得分:1)
您可能希望使用MERGE子句实现插入/更新查询。它可能看起来像:
MERGE Members AS t
USING
(
SELECT @person_id person_id,
) AS s
ON t.person_id = s.person_id
WHEN MATCHED THEN
UPDATE
SET ...
WHEN NOT MATCHED THEN
INSERT
(
person_id,
name,
...
)
VALUES
(
s.person_id,
@name,
...
);
因此,当您传递@person_id
变量值为0或null或任何其他不存在的数据库时,您将获得新记录,否则,如果@person_id
与db中的任何记录匹配,它'我会更新