Transacciones en script de actualizacion de estructuras

18/03/2007 - 14:25 por Rafael | Informe spam
Hola a todos.
Las transacciones funcionan tambien con las actualizaciones de estructuras
de una base de datos?
Ejemplo: si yo tengo un script que me actualiza estructuras de tablas y
tambien modifica sp's, triggers o cualquier otra cosa estructural de la base
de datos, puedo meter ese script en una transaccion para que si ocurre un
error me deje todo como estaba????? Parecido a como uno hace con las
modificaciones de datos.

Preguntas similare

Leer las respuestas

#1 Javier Loria
18/03/2007 - 18:53 | Informe spam
Hola:
Si si puedes, todos o casi todas las operaciones son transaccionales:
¾GIN TRAN
GO
CREATE TABLE Demo(Col1 INT NOT NULL PRIMARY KEY)
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='Demo'
GO
ROLLBACK
GON
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='Demo'
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Rafael" wrote in message
news:
Hola a todos.
Las transacciones funcionan tambien con las actualizaciones de
estructuras de una base de datos?
Ejemplo: si yo tengo un script que me actualiza estructuras de tablas y
tambien modifica sp's, triggers o cualquier otra cosa estructural de la
base de datos, puedo meter ese script en una transaccion para que si
ocurre un error me deje todo como estaba????? Parecido a como uno hace
con las modificaciones de datos.



Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
18/03/2007 - 20:44 | Informe spam
Un detalle importante. Debes controlar los errores o cancelar ante cualquier
error.

Ls herramientas que vienen con el producto generan script de cambios que te
sugier revises para ver como generarlos.

Aqui te paso un ejemplo de lo que genra el managemen studio.


/* To prevent any potential data loss issues, you should review this script
in detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_tabla1
(
a int NOT NULL IDENTITY (1, 1),
b varchar(10) NOT NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_tabla1 ON
GO
IF EXISTS(SELECT * FROM dbo.tabla1)
EXEC('INSERT INTO dbo.Tmp_tabla1 (a, b)
SELECT a, b FROM dbo.tabla1 WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_tabla1 OFF
GO
DROP TABLE dbo.tabla1
GO
EXECUTE sp_rename N'dbo.Tmp_tabla1', N'tabla1', 'OBJECT'
GO
COMMIT




Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"Javier Loria" wrote in message
news:
Hola:
Si si puedes, todos o casi todas las operaciones son transaccionales:
=> BEGIN TRAN
GO
CREATE TABLE Demo(Col1 INT NOT NULL PRIMARY KEY)
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='Demo'
GO
ROLLBACK
GON
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='Demo'
> Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Rafael" wrote in message
news:
Hola a todos.
Las transacciones funcionan tambien con las actualizaciones de
estructuras de una base de datos?
Ejemplo: si yo tengo un script que me actualiza estructuras de tablas y
tambien modifica sp's, triggers o cualquier otra cosa estructural de la
base de datos, puedo meter ese script en una transaccion para que si
ocurre un error me deje todo como estaba????? Parecido a como uno hace
con las modificaciones de datos.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida