CREATE VIEW view_name
[ (column_alias [, ...n]) ]
[ WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA } [ , ...n ] ]
AS
SELECT select_list
[ WITH CHECK OPTION ];
CREATE VIEW v_card_tr
WITH ENCRYPTION -- 定義加密,隱藏定義文字
AS
SELECT TOP 10 cash AS cc
FROM card_transaction
WHERE SUBSTRING(entry_site, 1, 2) = N'站點' -- 起始位置為 1
ORDER BY id DESC
WITH CHECK OPTION; -- 透過 View 修改資料時必須符合 WHERE 條件
-- 寫法 1:SELECT 列別名
CREATE VIEW v_card_tr AS SELECT cash AS cc FROM ...;
-- 寫法 2:VIEW 定義欄位清單
CREATE VIEW v_card_tr (cc) AS SELECT cash FROM ...;
TOP 時才可使用 ORDER BY,否則報錯。SUBSTR():請用 SUBSTRING()。-- 修改 (保留權限)
ALTER VIEW v_card_tr
WITH ENCRYPTION
AS
SELECT TOP 10 cash AS cc FROM card_transaction ...;
-- 刪除
DROP VIEW v_card_tr;
| 選項 | 用途 |
|---|---|
| ENCRYPTION | 隱藏 syscomments 定義,防反編譯 |
| SCHEMABINDING | 綁定結構描述,基底表不可隨意變更欄位/刪除 |
| VIEW_METADATA | 讓 ODBC/OLE DB 客戶端視為可更新資料表 |
善用 View 封裝商業邏輯、簡化權限管理,並搭配 SCHEMABINDING 確保結構穩定。