Differences

This shows you the differences between two versions of the page.

sybase-asa-to-sql-server [November 23, 2017 1:03 am]
sqlines
sybase-asa-to-sql-server [December 23, 2020 9:23 am] (current)
sqlines
Line 1: Line 1:
====== SAP Sybase SQL Anywhere to SQL Server Migration ====== ====== SAP Sybase SQL Anywhere to SQL Server Migration ======
-SQLines provides tools and services to help you transfer data, convert database schema (DDL), views, stored procedures, functions, triggers, queries and SQL scripts from SAP SQL Anywhere, Sybase SQL Anywhere, Sybase Adaptive Server Anywhere (Sybase ASA) to Microsoft SQL Server.+SQLines provides tools and services to help you transfer data, convert database schema (DDL), views, stored procedures, functions, triggers, queries and SQL scripts from SAP SQL Anywhere, Sybase SQL Anywhere, Sybase Adaptive Server Anywhere (Sybase ASA) to Microsoft SQL Server (MSSQL, MS SQL), Azure SQL Database, Azure Synapse.
-We also help convert embedded SQL statements in C/C++ (ODBC), C#, Java, PowerBuilder, VB/VB.NET, ASP/ASP.NET, Python, Perl/PHP and other applications.+  * SQLines Data - Data transfer, schema migration and validation tool 
 +  * SQLines SQL Converter - SQL scripts conversion tool
-  * **SAP Sybase SQL Anywhere** 17, 16, 12, 11, 10, 9, 8, 7 and 5.x    +**Databases**:
-  * **Microsoft SQL Server** 2016, 2014, 2012, 2008, 2005 and 2000+
-===== SQLines Data Tool =====+  * SAP Sybase SQL Anywhere 17, 16, 12, 11, 10, 9, 8, 7 and 5.x    
 +  * Microsoft SQL Server 2019, 2017, 2016, 2014, 2012, 2008, 2005 and 2000, Azure SQL Database, Azure Synapse
-SQLines Data is a scalable, high performance data transfer, schema conversion and validation tool. 
-The tool requires connections to Sybase ASA (ODBC) and SQL Server (Native Client) databases. To convert stored procedures, functions, triggers, SQL statements and scripts use SQLines SQL Converter tool. 
-===== Why SQLines Data ===== 
- 
-SQLines Data benefits: 
- 
-**Advanced Database Schema Conversion and Data Transfer** 
-  * Column and data type mapping 
-  * Supporting LONG VARCHAR data 
- 
-**Migration Validation** 
-  * Comparing the number of rows in Sybase and SQL Server tables  
- 
-**Scalability and High-Performance** 
- 
-  * Transferring data in multiple concurrent sessions 
-  * Performing concurrent read and write operations in each session 
-  * Using Sybase ASA ODBC driver with array processing to extract data from Sybase 
-  * Using SQL Server Native Client Bulk Copy API to insert data to SQL Server 
-  * Multi-threaded C/C++ application 
- 
-**Designed for DBAs and Enterprise-Class Migrations** 
- 
-  * Easy to set up and configure the transfer of a large number of tables 
-  * Command line with powerful and easy to use options 
-  * Wildcards to select and exclude tables  
-  * No space required to hold Sybase export 
-  * No ADO.NET providers required 
-  * No .NET dependency 
- 
-**Logging and Statistics** 
-  * Comprehensive performance stats to help you tune the data transfer 
-  * Execution time for each DDL statement 
-  * Read and write performance for each table (rows/sec and bytes/sec) 
-  * Saving all executed DDL SQL statements into .sql file 
-  * Saving all failed DDL SQL statements into a separate .sql file 
-  * Summary performance information  
- 
-**Technical Support and Custom Solutions** 
-  * Direct support from the development team and migration experts 
-  * Software fixes and updates 
-  * Custom features by request 
- 
-**SQLines Data features: ** 
- 
-| **Schema Conversion** ||  
-| //CREATE TABLE Statement// |  {{:green_tick.gif|}}  | 
-| //AUTOINCREMENT Columns// |  {{:green_tick.gif|}}  | 
-| //NOT NULL Constraints// |  {{:green_tick.gif|}}  | 
-| //DEFAULT Clauses// |  {{:green_tick.gif|}}  | 
-| //CHECK Constraints// |  {{:green_tick.gif|}}  | 
-| //Primary and Foreign Keys// |  {{:green_tick.gif|}}  | 
-| //Unique Constraints// |  {{:green_tick.gif|}}  | 
-| //Indexes// |  {{:green_tick.gif|}}  | 
-| **Schema Transformation** || 
-| //Schema Name Mapping// |  {{:green_tick.gif|}}  | 
-| //Reserved Words// |  {{:green_tick.gif|}}  | 
-| **Validation** || 
-| //Validation by Row Count// |  {{:green_tick.gif|}}  | 
-| **Performance and Scalability** || 
-| //Parallel Sessions// |  Unlimited  |   
-| //Concurrent Reader/Writer in Each Session// |  {{:green_tick.gif|}}  | 
-| //32-bit Version// |  {{:green_tick.gif|}}  |   
-| **Automation** ||  
-| //[[/sqldata_cmd|Command Line]]// |  {{:green_tick.gif|}}  | 
Line 117: Line 53:
| 3 | /*  */ | Multi-line comment | /*  */ | | 3 | /*  */ | Multi-line comment | /*  */ |
| 4 | IF //condition// THEN //exp// ELSE //exp2// ENDIF | IF expression {{:exclamation.png|}} | CASE WHEN //condition// THEN //exp// ELSE //exp2// END | | 4 | IF //condition// THEN //exp// ELSE //exp2// ENDIF | IF expression {{:exclamation.png|}} | CASE WHEN //condition// THEN //exp// ELSE //exp2// END |
 +| 5 | SQLCODE | Error code of last operation | @@ERROR |
===== Data Types ===== ===== Data Types =====
Line 320: Line 257:
| 1 | SELECT FIRST //col//, ...  | Select the first row only | SELECT TOP 1 //col//, ... | | 1 | SELECT FIRST //col//, ...  | Select the first row only | SELECT TOP 1 //col//, ... |
|:::| SELECT FIRST(//col//) ...  |:::|:::| |:::| SELECT FIRST(//col//) ...  |:::|:::|
 +| 2 | SELECT //col,...// INTO //var, ...// FROM ... | Select a single row into variables | SELECT //@var = col, ...// FROM ... |
===== CREATE TABLE Statement ===== ===== CREATE TABLE Statement =====
Line 361: Line 299:
Converting user-defined SQL functions from Sybase SQL Anywhere to SQL Server: Converting user-defined SQL functions from Sybase SQL Anywhere to SQL Server:
-| | **Sybase SQL Anywhere** | **SQL Server** | +| | **Sybase SQL Anywhere** || **SQL Server** | 
-| 1 | CREATE FUNCTION //name// | CREATE FUNCTION //name// | +| 1 | CREATE FUNCTION //name// || CREATE FUNCTION //name// | 
-| 2 | IN //param// //datatype(length)// DEFAULT //default// | //@param// [AS] //datatype(length)// = //default// | +| 2 | IN //param// //datatype(length)// DEFAULT //default// || //@param// [AS] //datatype(length)// = //default// | 
-| 2 | RETURNS //datatype(length)// | RETURNS //datatype(length)// | +| 2 | RETURNS //datatype(length)// || RETURNS //datatype(length)// | 
-| 3 | [NOT] DETERMINISTIC | Removed | +| 3 | [NOT] DETERMINISTIC || Removed | 
-| 4 | [AS] | [AS] | +| 4 | ON EXCEPTION RESUME | Continue execution in an error occurs | Removed, it is the default behavior | 
 +| 5 | [AS] || [AS] |
For more information, see  [[/sybase-asa-to-sql-server#procedural-sql-statements|Conversion of Procedural SQL Statements]]. For more information, see  [[/sybase-asa-to-sql-server#procedural-sql-statements|Conversion of Procedural SQL Statements]].
Line 396: Line 335:
| 3 | DECLARE //name// EXCEPTION FOR SQLSTATE VALUE '//sqlstate//' || Declaration not required, removed | | 3 | DECLARE //name// EXCEPTION FOR SQLSTATE VALUE '//sqlstate//' || Declaration not required, removed |
| 4 | IF //condition// THEN ... ELSEIF/ELSE ... END IF | IF statement | IF //condition// BEGIN ... END ELSE ... | | 4 | IF //condition// THEN ... ELSEIF/ELSE ... END IF | IF statement | IF //condition// BEGIN ... END ELSE ... |
 +|:::| IF //condition// BEGIN ... END ELSE ... |:::|:::|
| 5 | SIGNAL //exception_name// | Raise an exception | RAISERROR('//error text//', 16, 1) | | 5 | SIGNAL //exception_name// | Raise an exception | RAISERROR('//error text//', 16, 1) |