由于存储过程不能返回表,
而方法又不能动态查询。
所以想用方法调用存储过程
- SQL code
CREATE PROCEDURE spGetWageRecordSQL @NAME VARCHAR(10), @SQL VARCHAR(MAX) OUTPUTAS SET @SQL='SELECT xm AS 姓名' SELECT @[email protected]+ ',['+ xmdm + '] AS ['+xmmc+']' FROM gz_xmb ORDER BY DISP_ORDER SET @SQL = @SQL + ' FROM gz_dygzb WHERE xm=''' + @NAME + '''';
[email protected],[email protected]
- SQL code
CREATE FUNCTION fnGetWageRecord( @Sql VARCHAR(MAX), @Name VARCHAR(10)) RETURNS TABLEASBEGIN SET @Sql= EXEC(spGetWageRecordSQL(@Name,@Sql)) RETURN(EXEC(@Sql)) END
[email protected],然后向程序返回查询结果。
由于sql语法基础不是很好,求大大们帮忙改一改。。
------解决方案--------------------
CREATE TABLE #T(...)
INSERT #T EXEC @SQL