Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/05/2011, 16:42
Avatar de GeoAvila
GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años
Puntos: 53
Respuesta: Assertion en sql2

Lo que podes utilizar son Triggers para este efecto, y asi poder restringir a tu gusto y antojo cada restriccion.

http://msdn.microsoft.com/en-us/libr...sql.80%29.aspx

por ejemplo para evitar una insercion en un trigger lo hacemos asi.
Código:
ALTER TRIGGER [dbo].[t_i_tabla]
   ON  [dbo].[tabla]
   instead of insert
AS 
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

--aca iria algo como 
--if((Select count(*) from Obras_subasta o, inserted i where i.evento = o.evento and i.pujador = o.pujador)>20)
--en el if anterior le digo que si ha ingresado mas de 20 lineas en en el evento no inserte datos.
return

END
tambien lo podemos hacer desde el For Insert con un rollback para nos devuelva un mensaje de error.

Código:

ALTER TRIGGER [dbo].[t_i_tabla]
   ON  [dbo].[tabla]
for insert  as  
if (select count(*) from titles, inserted      where titles.title_id = inserted.title_id) !=     @@rowcount     
rollback trigger with raiserror 25003      "Trigger rollback: salesdetail row not added      because a title_id does not exist in titles." 
Nos Vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila

Última edición por GeoAvila; 25/05/2011 a las 17:12