chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
-- =====================================================
|
||||
-- 初始化 SignUp 表的序號 (SeqNo)
|
||||
-- 用途:為現有的參加人員記錄補充序號
|
||||
-- 說明:按活動(CourseID)和ID排序,為每個活動內的參加人員自動編號
|
||||
-- =====================================================
|
||||
|
||||
-- 方式一:使用 ROW_NUMBER() - 推薦(支援 SQL Server 2005+)
|
||||
-- 此方式會為每個活動內的記錄按 ID 順序編號
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
UPDATE SignUp
|
||||
SET SeqNo = rn.RowNum
|
||||
FROM SignUp su
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
ID,
|
||||
ROW_NUMBER() OVER (PARTITION BY CourseID ORDER BY ID ASC) AS RowNum
|
||||
FROM SignUp
|
||||
) rn ON su.ID = rn.ID
|
||||
WHERE su.SeqNo = 0 OR su.SeqNo IS NULL;
|
||||
|
||||
-- 顯示更新結果
|
||||
SELECT '序號更新完成' AS [操作結果];
|
||||
SELECT CourseID, COUNT(*) AS [人數], MIN(SeqNo) AS [最小序號], MAX(SeqNo) AS [最大序號]
|
||||
FROM SignUp
|
||||
WHERE SeqNo > 0
|
||||
GROUP BY CourseID
|
||||
ORDER BY CourseID;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
|
||||
-- =====================================================
|
||||
-- 驗證結果
|
||||
-- =====================================================
|
||||
|
||||
-- 查看更新後的資料
|
||||
SELECT
|
||||
ID,
|
||||
CourseID,
|
||||
SeqNo,
|
||||
Name,
|
||||
Mobile,
|
||||
CheckInTime,
|
||||
CheckOutTime
|
||||
FROM SignUp
|
||||
ORDER BY CourseID ASC, SeqNo ASC;
|
||||
|
||||
-- 檢查是否有未設定序號的記錄
|
||||
SELECT
|
||||
ID,
|
||||
CourseID,
|
||||
Name,
|
||||
Mobile
|
||||
FROM SignUp
|
||||
WHERE SeqNo = 0 OR SeqNo IS NULL
|
||||
ORDER BY CourseID, ID;
|
||||
|
||||
-- 檢查序號是否重複
|
||||
SELECT
|
||||
CourseID,
|
||||
SeqNo,
|
||||
COUNT(*) AS [重複次數]
|
||||
FROM SignUp
|
||||
WHERE SeqNo > 0
|
||||
GROUP BY CourseID, SeqNo
|
||||
HAVING COUNT(*) > 1
|
||||
ORDER BY CourseID, SeqNo;
|
||||
Reference in New Issue
Block a user