At this point, you can rerunsp_dbcmptlevel to verify that the pubs database was changed correctly:
sp_dbcmptlevel pubs
It returns the following:
The current compatibility level is 65.
In addition to the examples in previous table, the differences in the compatibility levels extend to reserved words too.
Both Sybase and SQL Server have lists of reserved words that cannot be used to name objects in the database. The lists for the two products are similar, but not exactly the same.
This issue could make the conversion from Sybase to SQL Server a little more difficult because objects that can be created in Sybase might not be able to be created in SQL Server.
The following is a list of SQL Server reserved words that are not reserved words in Sybase.
Note: Any objects in your Sybase database with names in this list must be renamed before a MSSQL Server conversions.
BACKUP | COLUMN | COMMITTED | CONTAINS | CONTAINSTABLE |
CROSS | CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | CURRENT_USER |
DENY | DISTRIBUTED | FILE | FLOPPY | FREETEXT |
FREETEXTTABLE | FULL | IDENTITYCOL | INNER | JOIN |
LEFT | NOCHECK | OPENDATASOURCE | OPENQUERY | OPENROWSET |
OUTER | PERCENT | PIPE | REPEATABLE | REPLICATION |
RESTORE | RESTRICT | RIGHT | ROWGUIDECOL | SERIALIZABLE |
SESSION_USER | SYSTEMUSER | TAPE | TOP | UNCOMMITTED |
UPDATETEXT |
Sybase |
SQL Server |
Set chained [ on : off ] | Set implicit_transactions [on : off ] |
To determine the current transaction mode using:
Sybase
Example:
SELECT @@tranchained
GO
Here are the results:
0 indicates that the default unchained mode is being used.
1 indicates that the connection is running in chained mode
To determine the current transaction mode using:
SQL Server
Example:
IF (@@options & 2) > 0
PRINT on
ELSE
PRINT off
Here are the results:
0 off
>0 on