登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
Transacciones SQL により Mind Map: Transacciones SQL

1. Ejemplo Practico de Concurrencia

1.1. Es un problema muy común al que nos enfrentamos al diseñar e implementar bases de datos para un sistema en particular.

1.2. Ejemplo de aplicación: es obtener ID de algún registro el cual acabamos de insertar.

1.2.1. Idea 1

1.2.2. Declare @NuevoId int Select @NuevoId = SelectMax(Contador)+1 from Tabla Datos Insert Tabla Datos values(@NuevoId, campo2, campo3,...)

1.2.3. En este ejemplo NO SE DEBE HACER, se va ala tabla, se obtiene el mayor valor y se le añade uno.

1.2.4. Eso significa, más que una fuente de bloqueos, un enorme tapón para la aplicación.

1.2.5. Reglas Básicas para generar ID

1.2.5.1. No involucrar a la tabla para la que se tiene que obtener el contador.

1.2.5.2. Obtener el número de contador fuera de transacción.

1.2.6. Idea 2

1.2.7. Utilizar un tipo de dato autoincremental

1.2.7.1. CREATE TABLE Persons( ID int IDENTITY(1,1) PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255))

1.2.8. Utilizar funciones de SQL IDENTITY

1.2.8.1. •@@IDENTITY

1.2.8.1.1. Devuelve el ID de recién incorporado, para cualquier tabla para la conexión o la sesión actual, pero no es el ámbito actual.

1.2.8.2. •SCOPE_IDENTITY()

1.2.8.2.1. Devuelve el ID del recién insertado para la tabla en el ámbito actual y la conexión o sesión actual.

1.2.8.3. •DENT_CURRENT(‘NombreTabla’)

1.2.8.3.1. Devuelve el ID del registro recién insertado para la tabla especificada.

2. Practicade Concurrencia

2.1. Subido a la plataforma Moodle