首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

SQL Server 學生表新增身份證號列並批量更新數據

     編輯:程式設計疑難解答

場景:學生表已有數據,新增 `IDCard` 列,需根據身份證信息表批量回填學生身份證號。

步驟 1:新增列

ALTER TABLE 學生表 ADD IDCard VARCHAR(18) NULL;

步驟 2:準備身份證信息表

假設有臨時表或導入表 `身份證表(學生ID, 身份證號)`,以唯一標識(如學號/身份證號)關聯。

步驟 3:跨表更新(內連接)

UPDATE 學生表
SET 學生表.IDCard = 身份證表.身份證號
FROM 學生表
INNER JOIN 身份證表 ON 學生表.學生ID = 身份證表.學生ID;

關鍵點

  • 不要用姓名關聯:姓名可能重複,必須用唯一鍵(學生ID、身份證號本身)。
  • SQL Server 語法:`UPDATE ... SET ... FROM ... JOIN ...`。
  • MySQL 語法:`UPDATE 學生表 INNER JOIN 身份證表 ON ... SET 學生表.IDCard = 身份證表.身份證號`。
  • 事務包裹:大批量更新建議啟用事務,驗證行數後提交。

驗證腳本

-- 檢查未更新行
SELECT * FROM 學生表 WHERE IDCard IS NULL;

-- 抽樣核對
SELECT 學生表.姓名, 學生表.IDCard, 身份證表.身份證號
FROM 學生表
JOIN 身份證表 ON 學生表.學生ID = 身份證表.學生ID
WHERE 學生表.IDCard <> 身份證表.身份證號;

參考資料

MySQL 多表更新(跨表更新)詳解

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved