轉帖|行業資訊|編輯:鮑佳佳|2020-07-13 11:39:21.680|閱讀 547 次
概述:本文主要討論了如何使用SQL Complete工具刪除丟失的事務。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
dbForge Studio for SQL Server為有效的探索、分析SQL Server數據庫中的大型數據集提供全面的解決方案,并設計各種報表以幫助作出合理的決策。
點擊下載dbForge Studio for SQL Server最新試用版
有時人們在 SQL Server打開的事務處理到一半的情況下會忘記它們。這是常規數據庫開發中經常遇到的情況。比如當使用SQL Server Management Studio運行腳本和使用BEGIN TRANSACTION語句啟動顯式事務時,卻在事務中間取消了該批處理而沒有發出COMMIT或ROLLBACK語句來完成事務并且使得交易保持打開狀態。
本文主要討論了如何使用SQL Complete工具刪除丟失的事務。下面演示如何實現該算法第1步,我們將演示如何創建表以列出和歸檔未完成的事務。
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [srv].[SessionTran]( [SessionID] INT NOT NULL, [TransactionID] BIGINT NOT NULL, [CountTranNotRequest] TINYINT NOT NULL, [CountSessionNotRequest] TINYINT NOT NULL, [TransactionBeginTime] DATETIME NOT NULL, [InsertUTCDate] DATETIME NOT NULL, [UpdateUTCDate] DATETIME NOT NULL, CONSTRAINT [PK_SessionTran] PRIMARY KEY CLUSTERED ( [SessionID] ASC, [TransactionID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [srv].[SessionTran] ADD CONSTRAINT [DF_SessionTran_Count] DEFAULT ((0)) FOR [CountTranNotRequest] GO ALTER TABLE [srv].[SessionTran] ADD CONSTRAINT [DF_SessionTran_CountSessionNotRequest] DEFAULT ((0)) FOR [CountSessionNotRequest] GO ALTER TABLE [srv].[SessionTran] ADD CONSTRAINT [DF_SessionTran_InsertUTCDate] DEFAULT (getutcdate()) FOR [InsertUTCDate] GO ALTER TABLE [srv].[SessionTran] ADD CONSTRAINT [DF_SessionTran_UpdateUTCDate] DEFAULT (getutcdate()) FOR [UpdateUTCDate] GO在此腳本中:
1)用SessionID 標識一個會話
2)用TransactionID標識丟失的交易
3)用CountTranNotRequest代表交易記錄為丟失的次數
4)用CountSessionNotRequest代表將會話記錄為沒有活動查詢并包含丟失的事務的次數
5)用TransactionBeginTime是指丟失交易的開始日期和時間
6)用InsertUTCDate 標識創建記錄的日期和時間(UTC)
7)用UpdateUTCDate 標識記錄更新的日期和時間(UTC)。
create table [srv].[SessionTran]( [SessionID] int not null, [TransactionID] bigint not null, [CountTranNotRequest] tinyint not null, [CountSessionNotRequest] tinyint not null, [TransactionBeginTime] datetime not null, [InsertUTCDate] datetime not null, [UpdateUTCDate] datetime not null, constraint [PK_SessionTran] primary key clustered ([SessionID] asc, [TransactionID] asc) with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on, fillfactor = 95) ON [PRIMARY] ) on [PRIMARY] GO
CREATE TABLE [srv].[SessionTran] ( [SessionID] INT NOT NULL ,[TransactionID] BIGINT NOT NULL ,[CountTranNotRequest] TINYINT NOT NULL ,[CountSessionNotRequest] TINYINT NOT NULL ,[TransactionBeginTime] DATETIME NOT NULL ,[InsertUTCDate] DATETIME NOT NULL ,[UpdateUTCDate] DATETIME NOT NULL ,CONSTRAINT [PK_SessionTran] PRIMARY KEY CLUSTERED ([SessionID] ASC, [TransactionID] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY] ) ON [PRIMA GO
圖6.格式化的代碼片段
在SQL格式化功能也應該被提及。借助它的幫助,您可以無縫格式化先前編寫的腳本。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn