CREATE FUNCTION zhuan(
@dmm varchar(20),
@dm varchar(20)) 
RETURNS varchar(20) 
as
begin
declare @mc varchar(20);
if @dm is not null 
return (select mc = @mc from dm_mx where dmm = @dmm and dm = @dm)
return @mc 
ENDselect dbo.zhuan('1001','0')返回的总是NULL
ff    dmm       dm      mc
1     1001       0      男   

解决方案 »

  1.   

    select   @mc   =   mc   from   dm_mx   where   dmm   =   @dmm   and   dm   =   @dm
    这样呢?
      

  2.   

    消息 102,级别 15,状态 1,过程 zhuan,第 48 行
    '=' 附近有语法错误。语法不对
     
    郁闷呀!帮忙呀“!
      

  3.   

    CREATE   FUNCTION   zhuan(
    @dmm   varchar(20),
    @dm   varchar(20))  
    RETURNS   varchar(20)  
    as
    begin
    declare   @mc   varchar(20);
    if   @dm   is   not   null  
    select  @mc= mc from   dm_mx   where   dmm   =   @dmm   and   dm   =   @dm
    return   @mc  
    ENDselect   dbo.zhuan('1001','0')create table dm_mx(ff int,dmm varchar(10),dm varchar(10),mc varchar(10))
    insert into dm_mx select 1,'1001','0','男'男
      

  4.   

    create table dm_mx(ff int,dmm varchar(200),dm varchar(20),mc char(20))
    go
    insert dm_mx select 1,'1001','0','男'  
    goCREATE   FUNCTION   zhuan(@dmm   varchar(20),@dm   varchar(20))   
    RETURNS   varchar(20)   
    as 
    begin 
    declare   @mc   varchar(20)
    if   @dm   is   not   null 
      begin  
       select   @mc=mc   from   dm_mx   where   dmm=@dmm  and  dm=@dm 
       return @mc
      end
    return   null   
    END 
    select   dbo.zhuan('1001','0')返回的总是NULL drop table dm_mx
      

  5.   

    select       dbo.zhuan('1001','0')返回的总是NULL  
    改为 select       dbo.zhuan('1001','0') --返回的总是NULL  
      

  6.   

    紫煈:select 前面不用写return 吧
    还有书写要有一定的格式呀?
    我写的时候一般都加一个空格
    而你好像加了不只一个空格吧
    if   @dm   is   not   null  
    select  @mc= mc from   dm_mx   where   dmm   =   @dmm   and   dm   =   @dm
      

  7.   

    呵呵
    我要加上例外那?CREATE   FUNCTION   zhuan(
    @dmm   varchar(20),
    @dm   varchar(20))  
    RETURNS   varchar(20)  
    as
    begin
    declare   @mc   varchar(20);
    declare   @liwai   varchar(30);
    set @liwai= '提供的参数数目不足或值不对'
    if   @dm   is   not   null  
    select  @mc= mc from   dm_mx   where   dmm   =   @dmm   and   dm   =   @dm
    END
    else  
    begin
    return  @liwai
    END
    return   @mc 
    end消息 156,级别 15,状态 1,过程 zhuan,第 65 行
    关键字 'else' 附近有语法错误。
    消息 102,级别 15,状态 1,过程 zhuan,第 70 行
    'end' 附近有语法错误。
      

  8.   

    CREATE   FUNCTION   zhuan(
    @dmm   varchar(20),
    @dm   varchar(20))  
    RETURNS   varchar(20)  
    as
    begin
    declare   @mc   varchar(20);
    if   (@dm   is   not   null ) and  (@dmm  is   not   null )
    begin
    select  @mc= mc from   dm_mx   where   dmm   =   @dmm   and   dm   =   @dm
    return   @mc 
    END
    else  
    begin
    return '提供的参数数目不足' 
    END
    return ''
    ENDselect dbo.zhuan('1001')
    为什么不能返回return '提供的参数数目不足' 
    ???
      

  9.   

    create table dm_mx(ff int,dmm varchar(10),dm varchar(10),mc varchar(10))
    insert into dm_mx select 1,'1001','0','男'
    CREATE       FUNCTION       zhuan(
    @dmm       varchar(20),
    @dm       varchar(20))    
    RETURNS       varchar(20)    
    as
    begin
    declare       @mc       varchar(20);
    if       (@dm       is       not       null   )   and     (@dmm     is       not       null   )
    select     @mc=   mc   from       dm_mx       where       dmm       =       @dmm       and       dm       =       @dm
    else    
    set @mc='提供的参数数目不足'  
    return   @mc
    END select   dbo.zhuan(null,'0') as '结果'结果提供的参数数目不足
      

  10.   

    对了还有,MSSQLSERVER2005怎么读取txt和sql文件