• Dear All,

    Thank you very much for your expert views on my problem.

    As I develop ERP products that target multiple countries I wanted a generic solution to my problem. Here is what I learned and recapitulate for your expert advice

    1. When installing your database in thrird party database or when creating a database that would interact with a third party database (say SAP Busineses One, Dynamics) keep collation of your database similar to third party database

    2. When creating temporary tables keep the collation to database default (by default temporary tables have collation of tempdb database)

    3. Write your sql queries keeping in mind that they can be case sensitive (in case sensitive database table authors is different from table Authors). Preferably use a query generator tool whereever possible.

    4. Avoid mix casing when creating tables, columns, sp, triggers etc. Use lower case or upper case but not both. Like table authors can be created as

    CREATE TABLE AUTHORS

    AS

    [AU_ID] ID NOT NULL,

    [AU_LNAME] NVARCHAR (40)....

    5. Always use unicode types NVARCHAR, NCHAR etc

    6. Avoid conversion of string to dates. For example following query

    SELECT * FROM SALES WHERE SALE_DATE>'15-May-2006' would definitely fail in a german collation. Always use parameterized queries like

    SELECT * FROM SALES WHERE SALE_DATE>@adate. Similarly do not write logic based on named date parts, for example MONTH(@adate) would return MAY in english amd MAI in german.

    7. As most business applications are witten in programming languages like vb, .NET, JAVA it is imperative that code is langauge agnostic and is not compiled against any specific locale.

    This list is by no means exhaustive and need valauable suggestions by all experts. I request all of you and moderators of this forum to come forward and create a guideline for creating globalized sofwares using sql server

    thanks,

    Abhishek Jain