SQLAnywhere: Watcom SQL или T-SQL

Общий вопрос. Я разрабатываю для Sybase SQL Anywhere 10. По соображениям обратной совместимости почти все наши хранимые процедуры написаны на Transact-SQL. Есть ли преимущества или недостатки использования T-SQL вместо диалекта Watcom?


person Gio2k    schedule 03.06.2009    source источник


Ответы (3)


Преимущества TSQL:

  • большая совместимость с Sybase ASE и Microsoft SQL Server

Недостатки TSQL:

  • some statements and functionality are only available in Watcom-SQL procedures. Some examples:
    • greater control over EXECUTE IMMEDIATE behavior in Watcom-SQL
    • LOAD TABLE, UNLOAD TABLE, REORGANIZE (среди прочего) доступны только в Watcom-SQL.
    • оператор FOR для циклического просмотра результатов запроса и автоматического объявления переменных, содержащих значения, очень полезен, но недоступен в TSQL.
  • отчеты об ошибках менее последовательны, поскольку предполагается, что процедуры TSQL обрабатывают свои собственные ошибки, в то время как процедуры Watcom-SQL сообщают об ошибках немедленно. Процедуры Watcom-SQL могут содержать предложение EXCEPTION для обработки ошибок.
  • операторы не разделяются точкой с запятой, поэтому процедуры TSQL сложнее анализировать (и читать). Синтаксические ошибки иногда могут не указывать на фактическое местоположение ошибки.
  • нет возможности явно объявить результирующий набор процедуры
  • нет поддержки триггеров на уровне строк в TSQL
  • обработчики событий могут быть написаны только с использованием Watcom-SQL

Документация по совместимости SQL Anywhere T-SQL: доступен в Интернете. Есть некоторые параметры базы данных, которые изменяют поведение, чтобы более точно соответствовать тому, что вы ожидаете от Sybase ASE. Кроме того, есть некоторые функции, которые можно использовать для перевода из одного синтаксиса в другой.

Обратите внимание, что если вы хотите начать добавлять операторы на диалекте Watcom в существующую хранимую процедуру, вам потребуется изменить SP так, чтобы он был полностью написан на диалекте Watcom. Вы не можете смешивать синтаксис в SP, триггере или пакете.

person Graeme Perrow    schedule 03.06.2009

Что сказал KM - с другой стороны, диалект "Watcom" намного ближе к стандарту ISO/ANSI SQL, так что этот диалект с большей вероятностью будет соответствовать некоторым другим продуктам и понравится людям, знакомым со стандартами SQL.

person Tom Slee    schedule 03.06.2009

если вы когда-нибудь попытаетесь перенести на SQL Server (или пойдете работать на SQL Server), Sybase T-SQL очень близка к SQL Server T-SQL. Sybase и MS когда-то объединились, поэтому ядро ​​этих языков очень похоже.

person KM.    schedule 03.06.2009