客戶端環境無法直接遠端連線,僅能透過電話指導在 SSMS 執行升級腳本。版本差異:
✅ CT_OuterCard 表新增 6 個欄位
✅ 新增大量預存程序
✅ 其他表結構、資料無變動
IF NOT EXISTS、DROP 等)。執行完成後,查詢視窗即包含所有預存程序的 CREATE PROCEDURE 完整腳本。
/* ============================================
GPOS 1.0 → 1.1 升級腳本 2013-07-04
============================================ */
USE [GPOSDB];
GO
/* ---- 1. 刪除所有現有預存程序 ---- */
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += N'DROP PROCEDURE ' + QUOTENAME(name) + N'; '
FROM sys.procedures;
EXEC sp_executesql @sql;
GO
/* ---- 2. 為 CT_OuterCard 新增 6 個欄位 ---- */
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransCurrCount] INT NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitTransCurrCount] DEFAULT ((0));
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransType] INT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitTransType] DEFAULT ((0));
ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransTotal] DECIMAL(18,2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransTotal] DEFAULT ((0));
ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransCurrTotal] DECIMAL(18,2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransCurrTotal] DEFAULT ((0));
ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitCarNo] INT NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitCarNo] DEFAULT ((0));
ALTER TABLE [dbo].[CT_OuterCard] ADD [D_LimitDate] DATETIME NOT NULL CONSTRAINT [DF_CT_OuterCard_D_LimitDate] DEFAULT (GETDATE());
GO
/* ---- 3. 部署 1.1 版所有預存程序(貼上階段一產生的腳本) ---- */
USE [GPOSDB];
GO
/****** 物件: StoredProcedure [dbo].[Report_GreaserSaleStat] ******/
SET ANSI_NULLS OFF; GO
SET QUOTED_IDENTIFIER OFF; GO
CREATE PROC [dbo].[Report_GreaserSaleStat]
@StartDate DATETIME,
@EndDate DATETIME,
@Action INT -- 0:交易記錄 1:班次記錄
AS
BEGIN
/* ... 此處省略完整程序碼,實際部署請貼上完整內容 ... */
END
GO
-- 其他預存程序依序貼上...
DROP,適用於大量物件清理。PRINT 訊息顯示各階段完成。CT_OuterCard 新欄位存在、預存程序數量與 1.1 版一致。
-- 範例:修改主鍵
ALTER TABLE dbo.SomeTable DROP CONSTRAINT PK_SomeTable;
ALTER TABLE dbo.SomeTable ADD CONSTRAINT PK_SomeTable PRIMARY KEY (NewCol1, NewCol2);
原則:先刪除約束 → 再修改欄位/加欄位 → 最後重建約束/索引,避免相依衝突。
這套「產生新版程式碼 → 動態清理舊物件 → 結構增量變更 → 部署新物件」的升級腳本模式,已在多個專案驗證可行。核心在於腳本冪等性(可重複執行不報錯)與清晰的階段劃分。下次面對資料庫版本升級,請依此範本調整,即可從容應對遠端指導、自動化部署等場景。