首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 預存程序動態產生 HTML 標籤實現前端標題變色

     編輯:關於SqlServer

在預存程序中依條件(如 `Hits=0`)動態拼接 `` 標籤,直接回傳含 HTML 的欄位,前端直接渲染無需額外邏輯。

預存程序範例


ALTER PROC GetDataByNumCategory
    @Carcategory NVARCHAR(50)
AS
BEGIN
    DECLARE @sql NVARCHAR(1000), @Num NVARCHAR(20);
    SELECT TOP 1 @Num = Keyword FROM TaoCarActive;

    DECLARE @Green NVARCHAR(100) = '',
            @GreenEnd NVARCHAR(100) = '',
            @Red   NVARCHAR(100) = '',
            @RedEnd  NVARCHAR(100) = '';

    SET @sql = 'SELECT TOP ' + @Num + ' ID, ' +
               'CASE WHEN Hits = 0 THEN ' + QUOTENAME(@Green + 'CarCard' + @GreenEnd, '''') +
               ' ELSE ' + QUOTENAME(@Red + 'CarCard' + @RedEnd, '''') + ' END AS CarCard ' +
               'FROM TaoCarActive WHERE Carcategory = ' + QUOTENAME(@Carcategory, '''') + ' ORDER BY ID';

    EXEC (@sql);
END;

關鍵點

  • 使用 `QUOTENAME(..., '''')` 安全處理單引號巢狀,避免動態 SQL 注入風險。
  • 邏輯:`Hits=0` 顯示綠色,否則紅色。
  • 前端直接 `Eval("CarCard")` 或 `@Html.Raw` 輸出即可呈現顏色。

改進建議

  • **關注點分離**:資料層不應輸出 HTML,建議回傳純資料 + 狀態碼(如 `IsNew=1`),前端依 CSS 類別渲染顏色。
  • 若必須在 DB 層輸出,考慮用 `FOR JSON` / `FOR XML` 結構化輸出,避免字串拼接錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved