Cita:
Empezado por Young
Creo que encontré la respuesta a la pregunta que NO supe plantear bien... por eso ruego sus disculpas. En el fondo necesitaba saber por ejemplo, si un sentencia if consultando por la existencia de una tabla podia ir fuera de un procedimiento almacenado... la respuesta es no, pero usando EXECUTE BLOCK se soluciona.
Código SQL [-]SET TERM !! ; EXECUTE BLOCK AS BEGIN if (not exists(select 1 from rdb$relations where rdb$relation_name = 'EMPLOYEE')) then execute statement 'create table employee ( id integer );'; END!! SET TERM ; !!
Gracias.
|
Vaya, que interesante. Nunca se me había ocurrido utilizar el EXECUTE BLOCK de esta forma (en realidad nunca utilizo esa sentencia porqué el dbExpress de Delphi 6 no la acepta).
Para las actualizaciones utilizo los Scripts de IBExpert, precisamente porqué tienen extensiones para realizar este tipo de condicionales. Pero si con esta construcción se puede utilizar un Script estándar, aceptado directamente por el motor, mejor que mejor.
Saludos.