LevSelector.com New York
home > Microsoft SQL Server

Microsoft SQL Server

- intro
- books
- sybase vs MS SQL Server
- accessing MS SQL Server from Unix
- mssql_sybase from perl
- perl_programming

- xxx
- xxx
- xxx


MS SQL server is very similar to Sybase. It also uses Transact SQL.

- http://www.microsoft.com/sql/ - MS SQL Server (search also for Exchange and Access).
- http://directory.google.com/Top/Computers/Software/Databases/Microsoft_SQL_Server/ - MS SQL Server
- http://www.sqlmag.com/ - SQL Server Magazine
- http://www.sql-server-performance.com/sg_from_sybase_to_sql_server.asp - Making the Move from Sybase to SQL Server - by Sayed Geneidy


MS SQL Server:


Sybase vs MS SQL

Today there are many differences between MS SQL Server and Sybase.

For example, difference in triggers:
Sybase MS SQL Server
you can not create temporary tables inside a trigger you can create temp table inside a trigger
Only 3 triggers (insert, update, delete) for a table

multiple triggers for each action (starting ver.7.0)

In SQL Server 2000 you can specify the order of firing using sp_settriggerorder

Triggers fire after the data modification (post triggers only) Pre- and post- triggers (starting with MS SQL Server 2000)

For more info, search for INSTEAD OF triggers, 'inserted table', 'deleted table' and COLUMNS_UPDATED()

unix => MS SQL Server

How application running on unix can connect to Microsoft SQL Server? Unfortunately Microsoft doesn't provide commercial unix libraries for this. They (Microsoft) recommend using third party free or commercial solutions:


Note: Originally Sybase and Microsoft SQL Server were the same (SQL Server 4.2 was developed as a joint effort by both companies in late 1980s). So it is natural to think that you may use Sybase client to connect to MS SQL Server. And it does work - but will not support all features and will have problems, because over the years Microsoft has changed the connectin protocol several times.

Some relevant links:


Access MS SQL and Sybase from one perl script

In perl we use DBI and separate drivers for different databases. Unfortunately there is no DBD::MSSQL - it doesn't exist. So we can use DBD::ODBC, DBD::Sybase, DBD::FreeTDS, DBD::Proxy, etc. The 3 most frequently used solutions are:

Note: there are known problems with freeTDS (http://www.freetds.org/faq.html):

For commercial use you can consider one of 3 solutions with commercial support:

Note: There are no native bcp or isql utilities for MS SQL Server on Unix.

perl programming

We should have 2 low-level procedures for commonly used functions.

Yet another unixodbc: http://www.cpan.org/authors/id/R/RK/RKIES/ - UnixODBC-0.34.tar.gz (21-Jan-2008 04:25)