软件版本是sql2005开发版我在查询分析器里使用error_message()函数,函数不会变成红色且运行时也说语法错误,请问是不是sql2005里什么地方可以设置启用这些函数的。

解决方案 »

  1.   

    你这个error_message()是自定义的函数?
    我太低端,没见过系统函数有这个的
      

  2.   

    USE AdventureWorks2008R2;
    GOBEGIN TRY
        -- Generate a divide-by-zero error.
        SELECT 1/0;
    END TRY
    BEGIN CATCH
        SELECT ERROR_MESSAGE() AS ErrorMessage;
    END CATCH;
    GO
    用法实例
    你是怎么用的
      

  3.   

    咦,还真的有,我这会变红,sql 2005开发版
      

  4.   


    就像您一样用的,我在公司用的是企业版,不管在什么地方只要输入error_message()字体至少会变成,不会有语法错误,但是在我这里,不管在哪里输入都是黑色的,没有变化,就算在catch块里使用也一样
      

  5.   

    嗯,因为你并没有发生错误,要在catch块里使用才能捕捉到错误
      

  6.   

    同6楼的哥们, 我这边也是没有这个问题。 
    Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) 
    Apr  2 2010 15:53:02 
    Copyright (c) Microsoft Corporation
    Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
      

  7.   


    非常对不起,是我的疏忽,这个函数是可以使用的,可能昨天我使用的时候真的某处有语法错误,不过它不显示红色,真的有点郁闷,谁知道要怎么处理,才能让它显示是红色的,不然我总以为是错的,其他系统函数没有这个问题啊,比如getdate()
      

  8.   

    你是指ssms里么?
    还是其他的编辑器?
      

  9.   

    可能你的其他地方的格式问题
    有时候某些地方 符号确实 可能使得其他相近的部分 函数识别不出来举个简单的例子。。java里面如果引号只打了一半 后面你接个jdk自带的函数一样会报错。。
      

  10.   

    工具—選項—字型和顏色-显示项-sql系统函数 
    选择你要显示的颜色(sql系统函数一般为粉红色)
      

  11.   


    我的系统函数一项是粉红色的, 可是偏偏error_message()处理就是黑色的,但是getdate(),len()这些就是正常的粉红色, 不仅如此error_number()也是黑色的
      

  12.   

    这么用
    ---raiserror的用法
    begin try
      raiserror('生成一个错误消息',11,1)
    end try
    begin catch
      select error_message() as 错误消息,
             error_severity() as严重级别,
             error_state() as state;
    end catch