SQL模擬死結產生
引用自:http://jengting.blogspot.tw/2012/06/sql.html
根據 MSDN 將死結數量降至最低 裡的圖型模擬死結產生 ~~

在 SSMS 內開啟兩個 T-SQL 查詢(兩個執行緒),利用下面語法來執行,請先執行 T-SQL 查詢 1,再執行 T-SQL 查詢 2。
步驟簡易說明:
- Step 1:建立一個 T-SQL 查詢 1,開啟一個交易,並進行更新 Supplier 資料
- Step 2:建立另一個 T-SQL 查詢 2,開啟一個交易,並進行更新 Part
- Step 3:回到 T-SQL 查詢 1,更新 Part
- Step 4:回到 T-SQL 查詢 2,更新 Supplier
藉此產生一個死結。
- 建立測試資料
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
IF OBJECT_ID('Supplier') IS NOT NULL DROP TABLE SupplierIF OBJECT_ID('Part') IS NOT NULL DROP TABLE PartCREATE TABLE Supplier ( SPLNO char(5), SPLName char(10), CONSTRAINT [PK_Supplier] PRIMARY KEY CLUSTERED ([SPLNO] ASC) )CREATE TABLE Part ( SPLNO char(5), Product char(50), CONSTRAINT [PK_Part] PRIMARY KEY CLUSTERED ([SPLNO] ASC,[Product] ASC) )INSERT INTO Supplier VALUES('00000','Microsoft')INSERT INTO Part VALUES('00000','SQL Server 2012') |
- T-SQL 查詢 1
|
1
2
3
4
5
|
BEGIN TRANSACTIONUPDATE Supplier SET SPLName = 'Microsoft' WHERE SPLNO = '00000' -- Step 1WAITFOR DELAY '00:00:05'UPDATE Part SET Product = 'SQL Server 2012' WHERE Product = 'SQL Server 2012' -- Step 3COMMIT TRANSACTION |
- T-SQL 查詢 2
|
1
2
3
4
5
|
BEGIN TRANSACTIONUPDATE Part SET Product = 'SQL Server 2012' WHERE Product = 'SQL Server 2012' -- Step 2WAITFOR DELAY '00:00:05'UPDATE Supplier SET SPLName = 'Microsoft' WHERE SPLNO = '00000' -- Step 4COMMIT TRANSACTION |
- 死結錯誤訊息
SQL模擬死結產生的更多相关文章
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)
JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)
說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)
說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...
- Datagard產生gap
本文轉載自無雙的小寶的博客:http://www.cnblogs.com/sopost/archive/2010/09/11/2190085.html 有時候因為網路或備份故障等原因,主機所產生的歸檔 ...
- ASP.NET Web API 文件產生器 - 使用 Swagger
转帖:http://kevintsengtw.blogspot.hk/2015/12/aspnet-web-api-swagger.html Swagger 是一套 API 互動文件產生器,使用 HT ...
- COB Epoxy灌膠時氣泡產生的原因與解決方法
COB的黑膠 (Epoxy)有氣泡通常是不被允許的,因為外部氣孔不但會影響到外觀,內部氣孔更有可能會破壞 Wire bonding 的鋁線穩定度.既使在COB製程剛完成的時候沒有通過功能測試,也不代表 ...
- 使用 FOR XML PATH 產生 XML 格式時,遇到 NULL 該如何處理?
當您嘗試利用 FOR XML PATH 產生 XML 格式時,若遇到 Result Set 為 Null 時,會導致整個查詢結果為 Null ,若您想要在查不到資料時,可以顯示自訂的內容,本文將提供可 ...
- javascript中的function命名空間與模擬getter、setter
function的命名空間 在javascript中,function也可以擁有自己的命名空間例如以下這段程式碼: 12345678 function () { return 'I am A';} A ...
- C# 在執行程式目錄下產生文件夾
//產生一個Log文件夾string appPath = Application.StartupPath; if (!Directory.Exists(appPath + "/log&quo ...
随机推荐
- Struts2如何传值到jsp页面
Struts2如何传值到jsp页面 不是action传值到jsp页面,而是jsp页面获取action中的属性值,或者范围(如request,session,application等)里的值.所以,有两 ...
- qtp中vb脚本,经典收藏
1.在脚本运行过程中屏蔽鼠标键盘输入 SystemUtil.BlockInput ‘开始处 这里是你的脚本 SystemUtil.UnblockInput ’结尾处 ----------------- ...
- 《JS权威指南学习总结--3.4null和undefined》
内容要点 一.相似性 var a= undefined; var b= null; if(a==b){ alert("相等"); ...
- 新任 CEO 致员工公开信:微软下一步做什么?
在微软宣布纳德拉成为新任 CEO 之后,全体微软员工收到了新掌门人的公开信,我们来看看他在信中都写了些什么? 我是谁? 我今年 46 岁,结婚已经 22 年了,现在有三个孩子.和其他人一样,我 ...
- Canvas 数学、物理、动画学习笔记一
Canvas 第五章 数学.物理和运动学习笔记让人映像深刻的运动,需要我们不只是简单的知道如何移动对象,还需要知道怎么按用户期望看到的方式去移动它们.这些需要基于数学知识的基本算法和物理学作用.基于点 ...
- ios 中NSString的一些调用
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepoo ...
- htop安装步骤【原创】
htop安装步骤 下载:http://hisham.hm/htop/releases/ [root@hchtest2 ~]# tar zxvf htop-2.0.2.tar.gz [root@hcht ...
- WEBROOT根目录 <%=request.getContextPath()%>
WEBROOT根目录 <%=request.getContextPath()%> == ${pageContext.request.contextPath}
- PHP之Zip扩展,解压缩文件,ZipArchive类
<?php $zip = new ZipArchive();//新建一个对象 /* $zip->open这个方法第一个参数表示处理的zip文件名. 第二个参数表示处理模式,ZipArchi ...
- PHP开发之路之一--WAMP的安装和配置
来到新公司,领导说后面一个web系统不用ASP.NET做了,用国外的一个Drupal进行二次开发.这个Drupal是基于PHP的一款开源CMS系统,那就必须要自学PHP咯~ 接下来说说正题吧: 一.安 ...