Subject Re: [firebird-support] Re: alter in stored procedure
Author Martijn Tonies
Hi Alexander,

> > > can i do this?
> > >
> > > CREATE PROCEDURE sp_test
> > > (tabname VARCHAR(24), colname VARCHAR(24), datatype VARCHAR(24))
> > > AS
> > > BEGIN
> > > ALTER TABLE :tabname ADD :colname :datatype;
> > > END
> > >
> > > how can i alter table (add new columns) in stored procedure?
> >
> > You can't.
> >
> > Unless you're using Firebird 1.5 and use EXECUTE STATEMENT -
> > this allows you to dynamically create an SQL statement and execute
> > it.
>
> Martijn, did you tried this youself? I'm afraid this is Pandora's
> Box. All my experience says metadata changes is not performed entirely
> under general transactional logic. And I intentionally recommend don't
> work with uncommited metadata changes even in the same transaction,
> what is assumed when metadata is changed within SP.

I first thought this wasn't allowed - but Nickolay, at the Firebird
Conference,
ensured me it was possible and that he uses it a lot.

Pandora's Box - may be, but if it's possible, it's possible.


With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird & MS SQL Server.
Upscene Productions
http://www.upscene.com