婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server約束增強的兩點建議

SQL Server約束增強的兩點建議

熱門標簽:分享百度地圖標注多個位置 知名電銷機器人價格 長沙智能外呼系統 菏澤語音電銷機器人加盟公司 電銷機器人公司 需要哪些牌照 湖南電腦外呼系統平臺 外呼系統改進 地圖標注牌 廣東防封卡外呼系統原理是什么
在許多情況下,對外鍵使用更復雜的邏輯表達式是非常有用的。 此外,在某些情況下能夠在索引視圖創建約束也將非常實用。 我將舉例說明,同時我希望針對此文的投票鏈接會盡快加上。
當外鍵中需要更為復雜的邏輯表達式時
考慮下面的簡單常識: 您的設備的最大電流不能超過您插入到它的電路的最大電流。 假設下面的表存儲電路和設備數據:
復制代碼 代碼如下:

CREATE TABLE Data.Curcuits(CurcuitID INT NOT NULL
CONSTRAINT PK_Curcuits PRIMARY KEY,
MaximumCurrent INT NOT NULL,
Description VARCHAR(100) NOT NULL);
GO
INSERT INTO Data.Curcuits(CurcuitID,
MaximumCurrent,
Description)
SELECT 1, 25, 'Deck and Garage';
GO
CREATE TABLE Data.Devices(DeviceID INT NOT NULL
CONSTRAINT PK_Devices PRIMARY KEY,
CurcuitID INT NULL,
MaximumCurrent INT NOT NULL,
Description VARCHAR(100) NOT NULL,
CONSTRAINT FK_Devices_Curcuits FOREIGN KEY(CurcuitID)
REFERENCES Data.Curcuits(CurcuitID)
);
GO

It would be very convenient to issue a simple command and implement this business rule:
一個非常簡便的命令就可能實現這個業務規則:
ALTER TABLE Data.Devices ADD CONSTRAINT FK_Devices_Curcuits
FOREIGN KEY(CurcuitID, MaximumCurrent)
REFERENCES Data.Curcuits(CurcuitID, MaximumCurrent)
MATCH ON((Data.Devices.CurcuitID = Data.Curcuits.CurcuitID) AND
(Data.Devices.MaximumCurrent = Data.Curcuits.MaximumCurrent));
However, it is not supported, so I need to use a workaround, one more column and three constraints instead of one, as follows:
然而,該語句并不被支持,所以必須采用其他辦法——多增加一列約束,使用3個而不是1個約束,如下所示:
ALTER TABLE Data.Curcuits
ADD CONSTRAINT UNQ_Curcuits UNIQUE(CurcuitID, MaximumCurrent);
GO
ALTER TABLE Data.Devices ADD CurcuitMaximumCurrent INT NULL;
GO
ALTER TABLE Data.Devices DROP CONSTRAINT FK_Devices_Curcuits;
GO
ALTER TABLE Data.Devices ADD CONSTRAINT FK_Devices_Curcuits
FOREIGN KEY(CurcuitID, CurcuitMaximumCurrent)
REFERENCES Data.Curcuits(CurcuitID, MaximumCurrent)
ON UPDATE CASCADE;
GO
ALTER TABLE Data.Devices
ADD CONSTRAINT CHK_Devices_SufficientCurcuitMaximumCurrent
CHECK(CurcuitMaximumCurrent >= MaximumCurrent);
GO
You can verify that the constraints work:
你可以驗證該約束有效:
INSERT INTO Data.Devices(DeviceID,
CurcuitID,
MaximumCurrent,
CurcuitMaximumCurrent,
Description)
SELECT 1, 1, 50, 25, 'Electric car charger'
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the CHECK constraint "CHK_Devices_SufficientCurcuitMaximumCurrent". The conflict occurred in database "Test", table "data.Devices".
The statement has been terminated.
INSERT 語句和CHECK約束"CHK_Devices_SufficientCurcuitMaximumCurrent"發生沖突。 該沖突發生在數據庫"Test"的"data.Devices"表。
該語句被終止執行。
As you have seen, the implementation of a very simple and very common business rule is quite involved, because such business rules are not directly supported by the database engine.
可以看出,一個非常簡單而普通的業務規則實現起來也相當繁雜,因為數據庫引擎并不直接支持這種業務規則。
When you want to create constraints on indexed views
在索引視圖上創建約束
Even when your database guarantees that “the maximum current of your device cannot exceed the maximum current of the circuit you plug it into”, it is not good enough. Consider the following sample data:
盡管數據庫保證“您的設備的最大電流不能超過您插入到它的電路的最大電流”,但這還不夠。請看下列示例數據:
INSERT INTO Data.Devices(DeviceID,
CurcuitID,
MaximumCurrent,
CurcuitMaximumCurrent,
Description)
SELECT 2, 1, 15, 25, 'ShopVac';
INSERT INTO Data.Devices(DeviceID,
CurcuitID,
MaximumCurrent,
CurcuitMaximumCurrent,
Description)
SELECT 3, 1, 15, 25, 'Miter Saw';
The database structure allows to plug more than one device into a circuit, which is correct, but if you turn both devices on, their combined maximum current exceeds the circuit's maximum current. To enforce this business rule, it would be natural to create an indexed view, so that the database guarantees that the totals are always correct:
數據庫中的數據表明可以插入一個以上的設備到電路,這沒有錯,可是當所有的設備都打開時,它們的最大電流之和會超過電路最大電流。為了加強這個業務規則,很自然的會創建一個索引視圖以使數據庫保證電流之和總是正確的。
CREATE VIEW Data.TotalMaximumCurrentPerCircuit WITH SCHEMABINDING
AS
SELECT d.CurcuitID,
c.MaximumCurrent AS CircuitMaximumCurrent,
SUM(d.MaximumCurrent) AS TotalMaximumCurrent,
COUNT_BIG(*) AS NumDevices
FROM Data.Devices d JOIN Data.Curcuits c ON d.CurcuitID = c.CurcuitID
GROUP BY d.CurcuitID, c.MaximumCurrent;
GO
CREATE UNIQUE CLUSTERED INDEX Data_TotalMaximumCurrentPerCircuit
ON Data.TotalMaximumCurrentPerCircuit(CurcuitID);
GO
If I could create a check constraint on that indexed view, I would be all set:
如果能在該索引視圖上創建一個約束,我將進行這樣的設置:
ALTER VIEW Data.TotalMaximumCurrentPerCircuit
ADD CONSTRAINT CHK_TotalMaximumCurrentPerCircuit_ValidCurcuit
CHECK(TotalMaximumCurrent = CircuitMaximumCurrent)
Instead, I need to use triggers or rather contrived kludges. A built in native support for such quite common business rules would increase the usefulness of SQL Server.
實際上,我必須使用觸發器或者精心拼湊Check約束來實現。如果數據庫內置支持這種相當普遍的業務規則,那將會增加SQL Server的實用性 。
您可能感興趣的文章:
  • mysql創建Bitmap_Join_Indexes中的約束與索引
  • Mysql中返回一個數據庫的所有表名,列名數據類型備注
  • sql語句查詢數據庫中的表名/列名/主鍵/自動增長值實例
  • sqlserver 修改列名及表名的sql語句
  • MySQL學習筆記4:完整性約束限制字段
  • sql腳本查詢數據庫表,數據,結構,約束等操作的方法
  • MySQL 添加、修改、刪除表的列及約束等表的定義
  • 使用sql語句創建和刪除約束示例代碼
  • MySQL導出所有Index和約束的方法
  • SQLSERVER實現更改表名,更改列名,更改約束代碼

標簽:美容院 泉州 福建 西寧 呼和浩特 珠海 天水 商洛

巨人網絡通訊聲明:本文標題《SQL Server約束增強的兩點建議》,本文關鍵詞  SQL,Server,約束,增,強的,兩點,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server約束增強的兩點建議》相關的同類信息!
  • 本頁收集關于SQL Server約束增強的兩點建議的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产成人午夜在线一区| 91在线视频免费观看| 91精品国产91久久久久久一区二区 | 国产一区二区不卡| 精品美女在线观看| 国产成人免费av在线| 亚洲色图一区二区三区| 91福利视频在线| 丝袜亚洲另类欧美综合| 精品国产乱码久久久久久久久| 国产精品一区二区三区网站| 国产精品人成在线观看免费| 欧洲生活片亚洲生活在线观看| 视频一区欧美日韩| 国产午夜亚洲精品理论片色戒| 99国产精品国产精品久久| 亚洲chinese男男1069| 精品剧情v国产在线观看在线| 成人午夜在线播放| 亚洲午夜影视影院在线观看| 精品精品国产高清一毛片一天堂| 丁香另类激情小说| 亚洲成人激情自拍| 久久精品视频网| 欧美日韩一级二级三级| 国内精品免费**视频| 亚洲男人的天堂在线观看| 夜夜嗨av一区二区三区网页| 欧美日韩中文字幕精品| 国产成人精品一区二区三区四区 | 国产女同性恋一区二区| 天堂精品中文字幕在线| 欧美日本一区二区三区四区| 精品一区二区三区久久| 亚洲精品国久久99热| 精品国产一区久久| 色吊一区二区三区| 国产激情视频一区二区在线观看| 亚洲精品视频在线观看网站| 精品欧美乱码久久久久久1区2区| 在线免费观看成人短视频| 国产一区二区三区免费观看| 亚洲成人tv网| 日韩一区中文字幕| 精品成a人在线观看| 欧美视频三区在线播放| av一区二区三区在线| 麻豆91在线播放| 亚洲va天堂va国产va久| 亚洲图片另类小说| 国产无遮挡一区二区三区毛片日本| 9191成人精品久久| 欧美亚洲愉拍一区二区| 99久久国产综合精品色伊| 国产一区二区三区四区在线观看| 日韩—二三区免费观看av| 伊人婷婷欧美激情| 亚洲嫩草精品久久| 1区2区3区国产精品| 国产精品理伦片| 2019国产精品| 精品国产乱码久久久久久老虎| 欧美狂野另类xxxxoooo| 欧美这里有精品| 91久久精品午夜一区二区| 不卡av在线网| 国产成人精品影院| 国产成人亚洲综合a∨婷婷图片| 久久国产精品色婷婷| 日本免费新一区视频| 天堂va蜜桃一区二区三区漫画版| 亚洲激情六月丁香| 亚洲人成在线播放网站岛国| 亚洲人成影院在线观看| 一区二区三区中文字幕| 一区二区三区免费看视频| 亚洲欧美偷拍三级| 一区二区三区不卡视频| 樱花草国产18久久久久| 亚洲午夜激情网页| 午夜成人免费电影| 亚洲1区2区3区4区| 日本中文一区二区三区| 欧美日韩中文另类| 亚洲品质自拍视频网站| 91丨porny丨户外露出| 亚洲精品视频免费观看| 欧美三级在线视频| 天天做天天摸天天爽国产一区| 91精品国产综合久久香蕉的特点 | 日本网站在线观看一区二区三区| 视频在线观看一区| 六月丁香综合在线视频| 国产一区二区三区免费观看| 国产成人精品一区二区三区四区| 99久久精品免费| 欧美日韩一区二区在线观看 | 色综合视频在线观看| 欧美性一区二区| 91精品在线免费| 久久精品视频在线看| 亚洲女性喷水在线观看一区| 性做久久久久久免费观看| 美国十次综合导航| 成人国产精品免费观看视频| 日本精品裸体写真集在线观看| 3d成人h动漫网站入口| 欧美大片在线观看一区| 国产精品色眯眯| 日韩精品亚洲一区| 成人影视亚洲图片在线| 欧美午夜一区二区| 久久在线观看免费| 亚洲一区二区三区在线看| 毛片基地黄久久久久久天堂| 成人免费视频视频| 日韩欧美在线网站| 最新日韩在线视频| 久久精品99国产精品日本| 一本大道久久a久久综合婷婷| 欧美日韩成人综合天天影院| 国产午夜精品久久久久久免费视| 香港成人在线视频| 国产suv精品一区二区6| 精品视频一区二区不卡| 久久久久久久久久久电影| 夜夜精品视频一区二区 | 日韩免费观看高清完整版在线观看| 国产欧美一区二区三区沐欲| 亚洲成av人片www| 成人免费毛片片v| 日韩欧美一区二区久久婷婷| 亚洲免费在线观看| 国产精品资源网站| 欧美精品少妇一区二区三区| 亚洲三级电影网站| 精品区一区二区| 91老师国产黑色丝袜在线| 成人做爰69片免费看网站| 国产一区视频在线看| 精品一区二区三区蜜桃| 韩国女主播成人在线| 蜜桃一区二区三区四区| 免费在线看一区| 亚洲免费观看在线视频| 久久99国产精品久久| 欧美一区永久视频免费观看| 亚洲蜜桃精久久久久久久| 国产精品一二三四区| 欧美一区二区三区视频免费| 亚洲午夜激情av| 欧美性生活大片视频| 一区二区三区四区不卡在线| av一二三不卡影片| 中文字幕在线不卡| 不卡欧美aaaaa| 国产精品免费视频一区| 懂色中文一区二区在线播放| 久久久激情视频| 国内精品国产三级国产a久久| 精品日韩成人av| 国模套图日韩精品一区二区| 日韩欧美视频一区| 午夜精品福利在线| 在线免费不卡电影| 午夜不卡av在线| 日韩一区二区视频| 狠狠色狠狠色综合| 久久综合精品国产一区二区三区 | 日韩二区三区四区| 日韩一级视频免费观看在线| 久久精品国产一区二区三| 精品国产a毛片| 国产精品亚洲一区二区三区在线| 久久久久国色av免费看影院| 国产美女精品在线| 亚洲国产精品成人综合| 色婷婷av久久久久久久| 亚洲综合色视频| 欧美一区二区人人喊爽| 韩国成人福利片在线播放| 国产日韩精品久久久| 91在线一区二区| 性做久久久久久久久| 日韩午夜在线影院| 国产成人综合在线| 一区二区三区在线视频播放| 欧美日韩在线观看一区二区| 免费观看30秒视频久久| 国产欧美一区二区精品久导航| 成人午夜视频福利| 亚洲国产欧美日韩另类综合 | 亚洲综合激情小说| 日韩免费视频一区| 99热这里都是精品| 日韩电影网1区2区| 欧美激情综合五月色丁香| 欧美偷拍一区二区| 国产乱子伦视频一区二区三区 | 欧美撒尿777hd撒尿|