sql server 2005事务持久性
以前我们也有讲过sql事务相关文章,下面我们来了解一下关于sql server 2005事务持久性一些东西,有需要的朋友参考一下。
原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性:事务完成时,必须使所有的数据都保持一致状态。
隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。
持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
下面用简单的示例(Northwind)来说明这一点。
原子性:
正常情况下是先删除订单详细表,再删除订单信息,下面倒过来为了演示事务的原子性,生产中这么写就是属于逻辑错误。
代码如下 | 复制代码 |
USE Northwind; GO BEGIN TRAN; DELETE FROM dbo.Orders WHERE OrderID = 10249; DELETE FROM dbo."Order Details" WHERE OrderID = 10249; COMMIT TRAN; GO |
执行结果:
表Orders因为违反引用完整性,删除操作失败, 表Order Details成功删除2行.从这个例子来看第一条T-SQL语句执行失败而第二条T-SQL却执行成功,这不明显证明事务不具有原子性。别急接
着往下看,因为BEGIN TRAN与END TRAN之间的语句为一个事务,要么操作全部成功,要么操作全部回滚,其实导致这个事务没有回滚的原因是会话的XACT_ABORT选项默认为OFF,产生运行时错误
时只回滚产生错误的T-SQL语句,事务会继续进行处理,如果错误严重也可能回滚整个事务。所以对于大多数时候需要显示将XACT_ABORT选项设置为ON,以便产生运行时错误时回滚事务。
运行以下T-SQL
代码如下 | 复制代码 |
SET XACT_ABORT ON; BEGIN TRAN; DELETE FROM dbo.Orders WHERE OrderID = 10250; DELETE FROM dbo."Order Details" WHERE OrderID = 10250; COMMIT TRAN; GO |
执行结果:Orders,Order Details表删除失败,因为删除Orders表数据出现错误,所以没有继续执行第二条T-SQL就进行事务回滚了,由此可以证明事务具备原子性。
一致性:
指相关的所有规则都必须应用于事务的修改,以保证事务的完整性,如用户自定义完整性(业务逻辑)以及数据库引擎提供的数据完整性(如实体完整性,域完整性,引用完整性,NULL,DEFAULT)。也可以理解为事务的操作必须遵守数据库现有的规则。
隔离性:隔离性主要说明事务之间不能相互影响,(主要是依靠锁,行版本控制实现)。
新打开2个查询窗口:
在第1个窗口输入下列T-SQL并且执行
代码如下 | 复制代码 |
BEGIN TRAN; UPDATE dbo.Products SET ProductName = N'IPHONE4' WHERE ProductID = 1; GO |
在第2个窗口输入下列T-SQL并且执行
代码如下 | 复制代码 |
SELECT * FROM dbo.Products; GO |
第二个窗口执行的状态是"正在执行查询...",这是因为第一个事务并没有完成(COMMIT OR ROLLBACK),而第二个事务需要读取第一个事务所依赖的资源,事务不会识别中间状态(我们也可以理
解为"未知状态",因为在未完成之前,我们无法知道知道第一个事务的最终状态是提交,还是回滚),正式因为这个原因,而已第二个事务才举棋不定,无法读取。这个示例很直接的说明了事务的
隔离性。
持久性:持久性主要是依靠记录设备,SQL Server 2005中指的是事务日志。即使服务器硬件、操作系统或数据库引擎 实例自身出现故障,该实例也可以在重新启动时使用事务日志,将所有未完成的事务自动地回滚到系统出现故障的点,具体的实现在这就不详细说明了,大家可以参考相关资料

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



HQL und SQL werden im Hibernate-Framework verglichen: HQL (1. Objektorientierte Syntax, 2. Datenbankunabhängige Abfragen, 3. Typsicherheit), während SQL die Datenbank direkt betreibt (1. Datenbankunabhängige Standards, 2. Komplexe ausführbare Datei). Abfragen und Datenmanipulation).

„Verwendung der Divisionsoperation in OracleSQL“ In OracleSQL ist die Divisionsoperation eine der häufigsten mathematischen Operationen. Während der Datenabfrage und -verarbeitung können uns Divisionsoperationen dabei helfen, das Verhältnis zwischen Feldern zu berechnen oder die logische Beziehung zwischen bestimmten Werten abzuleiten. In diesem Artikel wird die Verwendung der Divisionsoperation in OracleSQL vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Zwei Arten von Divisionsoperationen in OracleSQL In OracleSQL können Divisionsoperationen auf zwei verschiedene Arten durchgeführt werden.

Oracle und DB2 sind zwei häufig verwendete relationale Datenbankverwaltungssysteme, die jeweils über ihre eigene, einzigartige SQL-Syntax und -Eigenschaften verfügen. In diesem Artikel werden die SQL-Syntax von Oracle und DB2 verglichen und unterschieden und spezifische Codebeispiele bereitgestellt. Datenbankverbindung Verwenden Sie in Oracle die folgende Anweisung, um eine Verbindung zur Datenbank herzustellen: CONNECTusername/password@database. In DB2 lautet die Anweisung zum Herstellen einer Verbindung zur Datenbank wie folgt: CONNECTTOdataba

Interpretation der dynamischen SQL-Tags von MyBatis: Detaillierte Erläuterung der Verwendung von Set-Tags. MyBatis ist ein hervorragendes Persistenzschicht-Framework. Es bietet eine Fülle dynamischer SQL-Tags und kann Datenbankoperationsanweisungen flexibel erstellen. Unter anderem wird das Set-Tag zum Generieren der SET-Klausel in der UPDATE-Anweisung verwendet, die sehr häufig bei Aktualisierungsvorgängen verwendet wird. In diesem Artikel wird die Verwendung des Set-Tags in MyBatis ausführlich erläutert und seine Funktionalität anhand spezifischer Codebeispiele demonstriert. Was ist Set-Tag? Set-Tag wird in MyBati verwendet

Was ist Identität in SQL? In SQL ist Identität ein spezieller Datentyp, der zum Generieren automatisch inkrementierender Zahlen verwendet wird. Er wird häufig verwendet, um jede Datenzeile in einer Tabelle eindeutig zu identifizieren. Die Spalte „Identität“ wird oft in Verbindung mit der Primärschlüsselspalte verwendet, um sicherzustellen, dass jeder Datensatz eine eindeutige Kennung hat. In diesem Artikel wird die Verwendung von Identity detailliert beschrieben und es werden einige praktische Codebeispiele aufgeführt. Die grundlegende Möglichkeit, Identity zu verwenden, besteht darin, Identit beim Erstellen einer Tabelle zu verwenden.

WindowsServerBackup ist eine Funktion des WindowsServer-Betriebssystems, die Benutzern dabei helfen soll, wichtige Daten und Systemkonfigurationen zu schützen und vollständige Sicherungs- und Wiederherstellungslösungen für kleine, mittlere und große Unternehmen bereitzustellen. Nur Benutzer, die Server2022 und höher ausführen, können diese Funktion nutzen. In diesem Artikel erklären wir, wie Sie WindowsServerBackup installieren, deinstallieren oder zurücksetzen. So setzen Sie die Windows Server-Sicherung zurück: Wenn Sie Probleme mit der Sicherung Ihres Servers haben, die Sicherung zu lange dauert oder Sie nicht auf gespeicherte Dateien zugreifen können, können Sie die Sicherungseinstellungen Ihres Windows Servers zurücksetzen. Um Windows zurückzusetzen

Lösung: 1. Überprüfen Sie, ob der angemeldete Benutzer über ausreichende Berechtigungen zum Zugriff auf oder zum Betrieb der Datenbank verfügt, und stellen Sie sicher, dass der Benutzer über die richtigen Berechtigungen verfügt. 2. Überprüfen Sie, ob das Konto des SQL Server-Dienstes über die Berechtigung zum Zugriff auf die angegebene Datei verfügt Ordner und stellen Sie sicher, dass das Konto über ausreichende Berechtigungen zum Lesen und Schreiben der Datei oder des Ordners verfügt. 3. Überprüfen Sie, ob die angegebene Datenbankdatei von anderen Prozessen geöffnet oder gesperrt wurde. Versuchen Sie, die Datei zu schließen oder freizugeben, und führen Sie die Abfrage erneut aus . Versuchen Sie es als Administrator. Führen Sie Management Studio aus als usw.

Datenbanktechnologie-Wettbewerb: Was sind die Unterschiede zwischen Oracle und SQL? Im Datenbankbereich sind Oracle und SQL Server zwei hoch angesehene relationale Datenbankverwaltungssysteme. Obwohl beide zur Kategorie der relationalen Datenbanken gehören, gibt es viele Unterschiede zwischen ihnen. In diesem Artikel befassen wir uns mit den Unterschieden zwischen Oracle und SQL Server sowie deren Funktionen und Vorteilen in praktischen Anwendungen. Zunächst einmal gibt es Unterschiede in der Syntax zwischen Oracle und SQL Server.
