` 列字串 `@outchar`
將每列字串 `INSERT INTO ##daylist` 暫存表
最後呼叫 `sp_makewebtask` 將暫存表輸出為 `d:\test\daylist.htm`
關鍵技術點
- 使用 `##daylist` 全域暫存表跨批次傳遞 HTML 片段
- `CASE` 運算式處理星期對齊(第一周空白欄位)
- 字串串接組裝 HTML,避免應用層渲染
- `sp_makewebtask` 直接產生靜態檔案,適合定期排程發佈
現代化替代方案
目前建議:
- 應用層(ASP.NET / PHP / Python)產生 HTML,靈活度高、易維護
- 或使用 SSRS / Power BI 報表匯出 HTML
- 若必須在資料庫層,SQL Server 2016+ 可用 `FOR JSON` + `sp_executesql` 搭配外部渲染
完整程式碼架構參考
-- 1. 建立暫存表
CREATE TABLE ##daylist (html_line VARCHAR(8000))
-- 2. 宣告游標讀取行事曆基礎資料
DECLARE point3 CURSOR FOR SELECT dy, date, yue, ri, xingqi, year FROM calendar_data
-- 3. 迴圈組裝 HTML(略,見原始碼)
-- 4. 輸出靜態頁面
EXEC sp_makewebtask
@outputfile = 'd:\test\daylist.htm',
@query = 'SELECT html_line FROM ##daylist',
@colheaders = 0, @fixedfont = 0, @tabborder = 0
- 上一篇文章: 以使用者定義函數取代游標:兩種實務模式詳解
- 下一篇文章: SQL Server sp_makewebtask 靜態頁面產生完整參數指南與實務應用
Copyright ©
程式碼之家 All Rights Reserved