Subject Re: [ib-support] Migrating from Microsoft SQL Server to Firebird
Author Arno Brinkman
Hi,

> 1) In Microsoft SQL Server, there is an option to set
> string searches to be case-insensitive for the entire database.
> So, where clauses like those written below works:
>
> WHERE id = 'name' (returns rows with id = 'name', 'Name', 'NAME')
> WHERE id like '%name%' (returns rows with id
> = 'mYname', 'NameMe', 'NAME')
>
> Besides using WHERE upper(id) = upper('name'), is there any
> alternative options for setting a field, a table or a database
> to be case-insensitive?

- You could use case-insensitive collations to do it!

- Note that "WHERE upper(id) = upper('name')" doesn't use an index. If you
want an index for these fields you can create an shadow colomn which is
upped with a trigger and contain the UPPER version of the source colomn.

> 2) Is there an isnull(evalValue, ifnull) functionality in
> Firebird? The isnull function returns the value stored in ifnull
> when the evalValue is null.

FB1.5 has COALESCE() (MSSQL has it also) and this is an SQL-standard
function.

> 3) There is a length limit to field names, constraint names and
> table names. Any way to extend that limit?

The hard-coded limit is 31 characters IIRC.

Regards,
Arno Brinkman