Suspender restricciones check en una transacción

01/09/2008 - 14:41 por Pedro | Informe spam
Hola todos.

Existe alguna manera de (dentro de una transacción) suspender las
restricciones check de una tabla (para ejecutar unas instrucciones de
modificacion de prueba) y luego volver a ponerlas en el Commit o el RollBack
?

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
01/09/2008 - 17:11 | Informe spam
Pedro,

Me temo que SQL Server no cuenta con esa facilidad, conocida como
"deferrable constraints" (disculpa que lo ponga en ingles), las cuales se
chequean al final de la transaccion, cuando se hace el commit, y no fila a
fila.

Quizas desabilitando la restriccion, hacer la prueba y volover a
habilitarla, pero corres el riesgo de que si otra sesion inserta valores no
permitidos, entonces estos no seran chequeados. Para desabilitar las
restricciones puedes usar la sentencia "alter table".


AMB


"Pedro" wrote:

Hola todos.

Existe alguna manera de (dentro de una transacción) suspender las
restricciones check de una tabla (para ejecutar unas instrucciones de
modificacion de prueba) y luego volver a ponerlas en el Commit o el RollBack
?




Respuesta Responder a este mensaje
#2 Pedro
01/09/2008 - 17:42 | Informe spam
Lamento que esa facilidad no la tenga SQL Server. Yo lo usaba en Oracle.

De todos modos gracias.


"Alejandro Mesa" escribió en el
mensaje news:
Pedro,

Me temo que SQL Server no cuenta con esa facilidad, conocida como
"deferrable constraints" (disculpa que lo ponga en ingles), las cuales se
chequean al final de la transaccion, cuando se hace el commit, y no fila a
fila.

Quizas desabilitando la restriccion, hacer la prueba y volover a
habilitarla, pero corres el riesgo de que si otra sesion inserta valores
no
permitidos, entonces estos no seran chequeados. Para desabilitar las
restricciones puedes usar la sentencia "alter table".


AMB


"Pedro" wrote:

Hola todos.

Existe alguna manera de (dentro de una transacción) suspender las
restricciones check de una tabla (para ejecutar unas instrucciones de
modificacion de prueba) y luego volver a ponerlas en el Commit o el
RollBack
?




Respuesta Responder a este mensaje
#3 Pedro
01/09/2008 - 17:57 | Informe spam
Quizas desabilitando la restriccion, hacer la prueba y volover a
habilitarla, pero corres el riesgo de que si otra sesion inserta valores
no
permitidos, entonces estos no seran chequeados. Para desabilitar las
restricciones puedes usar la sentencia "alter table".




Si uno deshabilita la restricción también dentro de la transacción, se corre
el mismo riesgo ?
Respuesta Responder a este mensaje
#4 Alejandro Mesa
01/09/2008 - 18:16 | Informe spam
Pedro,

Si deshabilitas las restricciones de chequeo, lo haces para todas las
sesiones / usuarios de esa db, incluyendo el batch donde la deshabilitas.


AMB


"Pedro" wrote:

> Quizas desabilitando la restriccion, hacer la prueba y volover a
> habilitarla, pero corres el riesgo de que si otra sesion inserta valores
> no
> permitidos, entonces estos no seran chequeados. Para desabilitar las
> restricciones puedes usar la sentencia "alter table".
>

Si uno deshabilita la restricción también dentro de la transacción, se corre
el mismo riesgo ?




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