como se pone esto en sql server

tema enviado por sr en SQL Server
tema iniciado el 27/08/2007
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;