Código de SQL - Utilización de Transactions

sin imagen de perfil

Utilización de Transactionsgráfica de visualizaciones


SQL

Publicado el 26 de Febrero del 2003 por Eduardo Alca
33.340 visualizaciones desde el 26 de Febrero del 2003
Código de SQLServer para actualizar o añadir registros en una base de datos mediante transactions. Con control de errores.

Versión 1
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 26 de Febrero del 2003gráfica de visualizaciones de la versión: Versión 1
33.341 visualizaciones desde el 26 de Febrero del 2003
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
************************************************************************
Ejemplo Simple de Como utilizar  la Instrucción Begin Transaction.
queremos actualizar el Archivo Programa en donde todos los Registros
que en la columna cod_prog=06 lo remplace por xx y enseguida se realiza un
insert
en el Archivo Nivel donde  se Observa un Error, tomando en cuenta que la
longitud del campo
cod_prog en el archivo nivel solo debe de ser de longitud 2,es así que en
este ejemplo se obtiene un error.
Para Saber si ocurrió un Error se Utiliza La Variable Global @@Error=0 es
por que no ha ocurrido ningún error
**********************************************************************+
begin transaction
update programa set cod_prog='xx' where cod_prog='06'
insert into nivel(cod_prog,cod_niv,nom_niv)
values("xxxx","01","dddddddddddddd")
if @@error <> 0
  begin
rollback transaction
return
  end
commit transaction
************************************************************************
Store Procedure que permite insertar un nuevo Alumno
Recibe los valores de cada campo como parametro, menos el Codigo
del alumno pues este se autogenera en el Procedimiento
notese que tambien utilizamos la Instrucción Begin Transaction
************************************************************************
create Procedure Sp_Ins_Alu
@Nombre nvarchar(40),
@Direccion nvarchar(30),
@Telefono char(8),
@Fecha_Naci smalldatetime,
@Sexo bit
as
declare @cont integer
declare @codigo char(6)
begin transaction
update parametro set valor=valor+1,@cont=valor+1 where campo='Cod_alum'
if @@error<>0
   begin
rollback transaction
return -1
   end
set @codigo="A"+right('00000'+convert(varchar(4),@cont),5)
insert into alumnos(cod_alum,nombre,direccion,telefono,fecha_naci,sexo)
values(@codigo,@nombre,@direccion,@telefono,@fecha_naci,@sexo)
if @@error<>0
begin
rollback transaction
return -1
end
commit transaction
return



Comentarios sobre la versión: Versión 1 (3)

20 de Abril del 2007
estrellaestrellaestrellaestrellaestrella
el procedimiento esta bien el proble es que cuando tienes varios procesos a seguir tienes que estar poniendo un if y un roll, yo declaro variables de errores al inicio y voy poniento debajo de cada instruccion
set @serror1=@@error y al final pregunto si if (@serrorr1+@serror2+@serror3)>0 hago un roll esto me evita mucho trabajo con los if espero que lo tomes en cuenta
Responder
19 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
Muy bueno y simple
Responder
29 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
malooo
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s539