例如:
select Deptname from Dept where DeptNo=@DeptNoCREATE FUNCTION dbo.Dep(@DeptNo,@SQL)
as......return @deptname???@deptNo='12345';
@SQL='select Deptname from Dept where DeptNo=@DeptNo'
select dbo.dep('12345',@SQL).
请问如何写该自定义函数数返回'select Deptname from Dept where DeptNo=‘12345’的值。(因为我传递的@SQL是字符串形式,不能在自定义函数中执行,请高手指点,谢谢)

解决方案 »

  1.   

    declare @v varchar(100)
    select @v=dbo.dep('12345',@SQL)
      

  2.   

    create function funName(@DeptNo varchar(20))
    returns varchar(500)
    as
    begin
        set @deptname=(select Deptname from Dept where DeptNo=@DeptNo)
        return @deptname 
    end
    --楼主,你的具体的要求是什么呢?
      

  3.   

    在 函数里面 不能使用 动态sql 
    除非 你使用储存过程...
      

  4.   

    该自定义函数功能主要是实现数据的转换。通过传递参数值1与转换sql参数2,得到转换后的值。同时参数值2中需要参数值1来实现查询。
    例如:
    select Deptname from Dept where DeptNo=@DeptNoCREATE FUNCTION dbo.Dep(@DeptNo,@SQL)
    as......return @deptname???@deptNo='12345';
    @SQL='select Deptname from Dept where DeptNo=@DeptNo'
    select dbo.dep('12345',@SQL).
    请问如何写该自定义函数数返回'select Deptname from Dept where DeptNo=‘12345’的值。(因为我传递的@SQL是字符串形式,不能在自定义函数中执行,请高手指点,谢谢)
      

  5.   

    create function dbo.f_getsql(@i int,@sql varchar(100))
    returns varchar(100)
    as 
    begin 
    declare @var varchar(100)
    set @var='select Deptname from Dept where DeptNo='''+cast(@i as varchar)+''''
    return (@var)
    end
    select dbo.f_getsql('123','1')
    ------------------------------------------
    select Deptname from Dept where DeptNo='123'
      

  6.   

    create function dbo.f_getsql(@i int,@sql nvarchar(1000))
    returns varchar(1000)
    as 
    begin 
    declare @var varchar(100)
    set @var='select Deptname from Dept where DeptNo='''+cast(@i as varchar)+''''
    return (@var)
    end