更新主键启动字符



我有一个表student,并且它具有主键student_idstudent_id在多个表中引用。student_id格式为P123X12

表如下

  • Student(Student_id是PK
  • Audit_trail(Student_id是FK
  • 结果(Student_id是FK
  • 更多的10个表,指的是student_id

我在结果表中有100个记录,我想将这些记录从P123X12更新为D123X12。无论如何,我可以更改这些引用值吗?

根据我的评论,您可以在学生中复制数据。更改您的FK字段,然后从学生中删除原始记录。如果您不更改以p。

/* Duplicate our data in student */
INSERT INTO student (student_id, field2, field3, field4)
SELECT
'D' + SUBSTRING(student_id,2,LEN(student_id)-1)
,field2
,field3
,field4
FROM student
WHERE student_id LIKE 'P%'
/* Update our other tables */
UPDATE audit_trail
SET student_id = 'D' + SUBSTRING(student_id,2,LEN(student_id)-1)
WHERE student_id LIKE 'P%'
UPDATE Result
SET student_id = 'D' + SUBSTRING(student_id,2,LEN(student_id)-1)
WHERE student_id LIKE 'P%'
/* Delete the original rows from student */
DELETE student
WHERE student_id LIKE 'P%' 

一种稍长的方法是将您的原始字段提取到温度表中并从那里插入。然后,您可以从学生中删除内部连接到临时表的学生,以确保您只删除肯定想要的行。

相关内容

最新更新