Creating a Transact-SQL-compatible database

This section describes choices you must make when creating or rebuilding a database.

Quick start

Here are the steps you need to take to create a Transact-SQL-compatible database. The remainder of the section describes which options you need to set.

To create a Transact-SQL compatible database (Sybase Central)

  1. Start Sybase Central.

  2. Choose Tools » SQL Anywhere 11 » Create Database.

  3. Follow the instructions in the wizard.

  4. When you see the button, Emulate Adaptive Server Enterprise, click it and then click Next.

  5. Follow the remaining instructions in the wizard.

To create a Transact-SQL compatible database (Command line)

To create a Transact-SQL compatible database (SQL)

  1. Connect to any SQL Anywhere database.

  2. Enter the following statement, for example, in Interactive SQL:

    CREATE DATABASE 'dbname.db'
    ASE COMPATIBLE
    CASE RESPECT 
    BLANK PADDING ON;

    In this statement, ASE COMPATIBLE means compatible with Adaptive Server Enterprise. It prevents the SYS.SYSCOLUMNS and SYS.SYSINDEXES views from being created.

Make the database case sensitive

By default, string comparisons in Adaptive Server Enterprise databases are case sensitive, while those in SQL Anywhere are case insensitive.

When building an Adaptive Server Enterprise-compatible database using SQL Anywhere, choose the case sensitive option.

  • If you are using Sybase Central, this option is in the Create Database Wizard.
  • If you are using the dbinit utility, specify the -c option.
Ignore trailing blanks in comparisons

When building an Adaptive Server Enterprise-compatible database using SQL Anywhere, choose the option to ignore trailing blanks in comparisons.

  • If you are using Sybase Central, this option is in the Create Database Wizard.
  • If you are using the dbinit utility, specify the -b option.

When you choose this option, Adaptive Server Enterprise and SQL Anywhere considers the following two strings equal:

'ignore the trailing blanks   '
'ignore the trailing blanks'

If you do not choose this option, SQL Anywhere considers the two strings above different.

A side effect of choosing this option is that strings are padded with blanks when fetched by a client application.

Remove historical system views

Older versions of SQL Anywhere employed two system views whose names conflict with the Adaptive Server Enterprise system views provided for compatibility. These views include SYSCOLUMNS and SYSINDEXES. If you are using Open Client or JDBC interfaces, create your database excluding these views. You can do this with the dbinit -k option.

If you do not use this option when creating your database, executing the statement SELECT * FROM SYSCOLUMNS; results in the error, Table name 'SYSCOLUMNS' is ambiguous.