COMO PONER ESTO EN SQL SERVER es muy urgente!!!!
Publicado por SORAYA (5 intervenciones) el 27/08/2007 14:50:36
hola queria saber como poner esto en sql server?
gracias.
CREATE OR REPLACE TRIGGER VALIDAR_CLIENTE
BEFORE UPDATE OR INSERT ON CLIENTES FOR EACH ROW
--
DECLARE
--
BEGIN
IF UPDATING ('DNI_CLI') OR INSERTING THEN
--
FOR i IN 1 .. length(:NEW.dni_cli) LOOP
--
-- Comprueba los números del DNI
IF i BETWEEN 1 AND (length(:NEW.dni_cli) - 1) THEN
--
IF ((substr(:NEW.dni_cli, i, 1) NOT BETWEEN 0 AND 9) OR (substr(:NEW.dni_cli, i, 1) IS NULL)) THEN
--
RAISE_APPLICATION_ERROR(-20000, 'ERROR: El número del DNI ' || :NEW.dni_cli || ' no es válido.');
--
END IF;
--
-- Comprueba la letra del DNI
ELSE
--
IF ((substr(:NEW.dni_cli, i, 1) NOT BETWEEN 'A' AND 'Z') OR (substr(:NEW.dni_cli, i, 1) IS NULL)) THEN
--
RAISE_APPLICATION_ERROR(-20000, 'ERROR: La letra del DNI ' || :NEW.dni_cli || ' no es válida.');
--
-- Si la letra del DNI es correcta, se pone en mayúsculas, por si estuviese en minúsculas
ELSE
--
:NEW.dni_cli := UPPER(:NEW.dni_cli);
--
END IF;
--
END IF;
--
END LOOP;
--
END IF;
--
-- Login y password siempre en mayúsculas
:NEW.login := UPPER(:NEW.login);
:NEW.PASSWD := UPPER(:NEW.PASSWD);
--
EXCEPTION
WHEN value_error THEN RAISE_APPLICATION_ERROR(-20000, 'ERROR: El número del DNI ' || :NEW.dni_cli || ' no es válido.');
--
END;
gracias.
CREATE OR REPLACE TRIGGER VALIDAR_CLIENTE
BEFORE UPDATE OR INSERT ON CLIENTES FOR EACH ROW
--
DECLARE
--
BEGIN
IF UPDATING ('DNI_CLI') OR INSERTING THEN
--
FOR i IN 1 .. length(:NEW.dni_cli) LOOP
--
-- Comprueba los números del DNI
IF i BETWEEN 1 AND (length(:NEW.dni_cli) - 1) THEN
--
IF ((substr(:NEW.dni_cli, i, 1) NOT BETWEEN 0 AND 9) OR (substr(:NEW.dni_cli, i, 1) IS NULL)) THEN
--
RAISE_APPLICATION_ERROR(-20000, 'ERROR: El número del DNI ' || :NEW.dni_cli || ' no es válido.');
--
END IF;
--
-- Comprueba la letra del DNI
ELSE
--
IF ((substr(:NEW.dni_cli, i, 1) NOT BETWEEN 'A' AND 'Z') OR (substr(:NEW.dni_cli, i, 1) IS NULL)) THEN
--
RAISE_APPLICATION_ERROR(-20000, 'ERROR: La letra del DNI ' || :NEW.dni_cli || ' no es válida.');
--
-- Si la letra del DNI es correcta, se pone en mayúsculas, por si estuviese en minúsculas
ELSE
--
:NEW.dni_cli := UPPER(:NEW.dni_cli);
--
END IF;
--
END IF;
--
END LOOP;
--
END IF;
--
-- Login y password siempre en mayúsculas
:NEW.login := UPPER(:NEW.login);
:NEW.PASSWD := UPPER(:NEW.PASSWD);
--
EXCEPTION
WHEN value_error THEN RAISE_APPLICATION_ERROR(-20000, 'ERROR: El número del DNI ' || :NEW.dni_cli || ' no es válido.');
--
END;
Valora esta pregunta


0