将存储过程从Firebird移动到SQL Server

时间:2012-06-07 08:07:35

标签: sql-server stored-procedures firebird

Firebird和SQL Server上有数据库。我在Firebird中有工作存储过程。

问题是:如何将其翻译为T-SQL语法?

begin
  IF ((:PHONE_N is NULL) or (STRLEN(:PHONE_N)<1))  THEN
    BEGIN
      O_PHONE_N = NULL;
      EXIT;
    END

  IF (STRLEN(PHONE_N) > 3) THEN
    BEGIN
      O_PHONE_N = '(' || SUBSTR(:PHONE_N, 1, 3) || ') ';
      PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N));
      IF (STRLEN(:PHONE_N)> 3) THEN
        begin
          O_PHONE_N = O_PHONE_N || SUBSTR(:PHONE_N, 1, 3);
          PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N));
          IF (STRLEN(:PHONE_NUMBER)> 0) THEN
            O_PHONE_N = O_PHONE_N || '-' ||:PHONE_N;
        END
      ELSE
        O_PHONE_N = :O_PHONE_N || :PHONE_N;
    END
  ELSE
    O_PHONE_N = :PHONE_N;
end

1 个答案:

答案 0 :(得分:2)

此链接可能有所帮助:http://www.firebirdsql.org/manual/migration-mssql-syntax.html

这可能会有所帮助:

  • 前导@标记T-SQL变量(例如@phone_n
  • STRLEN在T-SQL中被称为LEN()
  • SUBSTRSUBSTRING

Check out the excellent MSDN documentation on T-SQL了解有关T-SQL语法的更多详细信息