自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server視圖中的檢查選項、加密選項和模式綁定選項的使用

數(shù)據(jù)庫 其他數(shù)據(jù)庫
在SQL Server中,如果創(chuàng)建了一個帶有WHERE條件的視圖,即使后續(xù)對視圖進行的修改違反了WHERE條件,這些更改仍然會被接受。

在本文中,我們將討論如何在SQL Server視圖中使用檢查選項、加密選項和模式綁定選項,并通過示例進行說明。

示例數(shù)據(jù)表的創(chuàng)建和數(shù)據(jù)填充

首先,我們需要創(chuàng)建兩個表:Department和Employee,并向這些表中插入一些示例數(shù)據(jù)。

-- 創(chuàng)建Department表
CREATE TABLE Department (
    ID INT PRIMARY KEY,
    Name VARCHAR(50)
);


-- 向Department表中插入測試數(shù)據(jù)
INSERT INTO Department VALUES (1, '信息技術(shù)部');
INSERT INTO Department VALUES (2, '人力資源部');
INSERT INTO Department VALUES (3, '銷售部');


-- 創(chuàng)建Employee表
CREATE TABLE Employee (
    ID INT PRIMARY KEY,
    Name VARCHAR(50),
    Gender VARCHAR(10),
    DOB DATETIME,
    Salary DECIMAL(18,2),
    DeptID INT
);


-- 向Employee表中插入測試數(shù)據(jù)
INSERT INTO Employee VALUES (1, '張三', '男', '1996-02-29 10:53:27.060', 25000, 1);
INSERT INTO Employee VALUES (2, '李四', '女', '1995-05-25 10:53:27.060', 30000, 2);
INSERT INTO Employee VALUES (3, '王五', '男', '1995-04-19 10:53:27.060', 40000, 2);
INSERT INTO Employee VALUES (4, '趙六', '女', '1996-03-17 10:53:27.060', 35000, 3);
INSERT INTO Employee VALUES (5, '孫七', '男', '1997-01-15 10:53:27.060', 27000, 1);
使用檢查選項(WITH CHECK OPTION)

在SQL Server中,如果創(chuàng)建了一個帶有WHERE條件的視圖,即使后續(xù)對視圖進行的修改違反了WHERE條件,這些更改仍然會被接受。例如,創(chuàng)建一個視圖來檢索IT部門的員工:

CREATE VIEW vwITDepartmentEmployees AS
SELECT ID, Name, Gender, DOB, Salary, DeptID
FROM Employee
WHERE DeptID = 1;

圖片圖片

嘗試插入一個違反WHERE條件的記錄:

INSERT INTO vwITDepartmentEmployees (ID, Name, Gender, DOB, Salary, DeptID) VALUES (7, '周八', '男', '1994-07-24 10:53:27.060', 45000, 2);

這條INSERT語句會成功執(zhí)行,因為沒有啟用檢查選項。如果想要強制視圖遵守其WHERE條件,可以在創(chuàng)建視圖時添加WITH CHECK OPTION:

ALTER VIEW vwITDepartmentEmployees AS
SELECT ID, Name, Gender, DOB, Salary, DeptID
FROM Employee
WHERE DeptID = 1
WITH CHECK OPTION;

圖片圖片

現(xiàn)在,嘗試執(zhí)行之前的INSERT語句將會失敗,因為它違反了視圖的WHERE條件。

使用加密選項(WITH ENCRYPTION)

為了安全起見,如果不希望別人看到視圖的定義,可以在創(chuàng)建或修改視圖時使用WITH ENCRYPTION選項。這樣,任何嘗試查看視圖定義的操作都會失敗,因為定義已被加密。

ALTER VIEW vwITDepartmentEmployees WITH ENCRYPTION AS
SELECT ID, Name, Gender, DOB, Salary, DeptID
FROM Employee
WHERE DeptID = 1
WITH CHECK OPTION;

使用模式綁定選項(WITH SCHEMABINDING)

模式綁定選項確保視圖綁定到它引用的數(shù)據(jù)庫對象。如果視圖使用了SCHEMABINDING,則無法修改影響視圖定義的數(shù)據(jù)庫對象,除非先修改或刪除視圖。

ALTER VIEW vwITDepartmentEmployees WITH SCHEMABINDING AS
SELECT ID, Name, Gender, DOB, Salary, DeptID
FROM dbo.Employee
WHERE DeptID = 1
WITH CHECK OPTION;

嘗試刪除或修改Employee表將導致錯誤,因為它被視圖引用。

圖片圖片

以上就是在SQL Server中使用檢查選項、加密選項和模式綁定選項的詳細介紹和示例。希望這些內(nèi)容對您有所幫助。

責任編輯:武曉燕 來源: 技術(shù)老小子
相關(guān)推薦

2011-02-22 15:16:58

2011-02-22 15:07:03

VSFTPD

2010-10-22 14:10:12

SQL Server內(nèi)

2009-03-09 10:41:49

2022-11-06 23:17:23

Go語言項目

2010-07-15 17:58:31

Perl模式

2011-03-03 16:28:24

Vsftpd設(shè)置

2011-03-21 10:20:07

nagios啟動

2021-11-28 22:33:01

Go選項模式

2009-05-07 15:52:26

SQL ServerSET選項客戶端管理

2010-07-16 09:24:59

Perl模式

2011-03-21 15:10:13

SQL Server 視圖*

2012-03-26 10:05:59

SaaS安全加密

2013-07-22 14:43:57

iOS開發(fā)ASIHTTPRequ

2021-07-07 11:55:51

SQL 內(nèi)存頁Windows

2020-05-17 20:48:03

LPWAN蜂窩網(wǎng)絡智能城市

2011-02-22 16:22:46

VSFTPD

2011-02-22 16:23:20

VSFTPD

2022-04-30 18:42:38

Go編程語言

2011-02-22 16:23:22

VSFTPD
點贊
收藏

51CTO技術(shù)棧公眾號