日期:2014-05-17  浏览次数:20424 次

谁能帮我简化一下调用??
由于存储过程不能返回表,
而方法又不能动态查询。
所以想用方法调用存储过程

SQL code
CREATE PROCEDURE spGetWageRecordSQL
    @NAME VARCHAR(10),
    @SQL VARCHAR(MAX) OUTPUT
AS
    SET @SQL='SELECT xm AS 姓名'
    SELECT @SQL=@SQL+ ',['+ xmdm + '] AS ['+xmmc+']' FROM gz_xmb ORDER BY DISP_ORDER
    SET @SQL = @SQL + ' FROM gz_dygzb WHERE xm=''' + @NAME + '''';


输入@name,然后输出这个人的工资详情的select语句@sql。

SQL code
CREATE FUNCTION fnGetWageRecord(
    @Sql VARCHAR(MAX),
    @Name VARCHAR(10))
    RETURNS TABLE
AS
BEGIN
    SET @Sql= EXEC(spGetWageRecordSQL(@Name,@Sql))
    RETURN(EXEC(@Sql))    
END


用这个方法执行@sql,然后向程序返回查询结果。

由于sql语法基础不是很好,求大大们帮忙改一改。。

------解决方案--------------------
CREATE TABLE #T(...)
INSERT #T EXEC @SQL