SELECT     dbo.BetMenu.id, dbo.BetMenu.BetMenu, dbo.BetMenu.cp_Id, b.textName AS cp_name, dbo.cp.sscname, c.textName AS state, 
                      dbo.BetMenu.orderid, dbo.f_txt2ID(dbo.BetMenu.GradeBonus, '分类', 0) AS gradebonu, dbo.BetMenu.GradeBonus, dbo.BetMenu.totalAmount, 
                      dbo.BetMenu.Factor, dbo.BetMenu.context, dbo.BetMenu.exp, dbo.BetMenu.Selected
FROM         dbo.BetMenu LEFT OUTER JOIN
                      dbo.cp ON dbo.BetMenu.cp_Id = dbo.cp.id LEFT OUTER JOIN
                      dbo.Dirc AS b ON dbo.BetMenu.cp_name = b.ClassID LEFT OUTER JOIN
                      dbo.Dirc AS c ON dbo.BetMenu.state = c.ClassID今天看到sql2008里别人写的视图,谁能帮我解释下里面的dbo.f_txt2ID是从哪里来的。

解决方案 »

  1.   

    翻遍了数据库的表,都没有叫f_txt2ID的。
      

  2.   

    表值函数,sp_helptext f_txt2ID
      

  3.   

    f_txt2ID 肯定是个函数 估计是用来生成序列的
      

  4.   

    是用户定义函数,这样你可以查看函数的代码:
    sp_helptext 'f_txt2ID'
      

  5.   


    -- 查询f_txt2ID的类型.
    select name,type '对象类型'
     from sys.objects 
     where name='f_txt2ID'对象类型:
    AF = 聚合函数 (CLR)
    C = CHECK 约束
    D = DEFAULT(约束或独立)
    F = FOREIGN KEY 约束
    FN = SQL 标量函数
    FS = 程序集 (CLR) 标量函数
    FT = 程序集 (CLR) 表值函数
    IF = SQL 内联表值函数
    IT = 内部表
    P = SQL 存储过程
    PC = 程序集 (CLR) 存储过程
    PG = 计划指南
    PK = PRIMARY KEY 约束
    R = 规则(旧式,独立)
    RF = 复制筛选过程
    S = 系统基表
    SN = 同义词
    SO = 序列对象
    SQ = 服务队列
    TA = 程序集 (CLR) DML 触发器
    TF = SQL 表值函数
    TR = SQL DML 触发器
    TT = 表类型
    U = 表(用户定义类型)
    UQ = UNIQUE 约束
    V = 视图
    X = 扩展存储过程