我有一个存储过程,该过程使用几个参数来构建动态查询,然后执行该查询。该查询工作正常,但是,此过程将是Crystal Report的数据源,该报表需要它可以引用的“静态” SELECT with field names。从Visual Basic应用程序调用Crystal Report,并从应用程序获取传递给它的参数。依次将参数传递给SQL Server存储过程。

我需要某种方式

SELECT fieldname1, fieldname2
FROM Exec(@MydynamcSQL)


在构建@MydynamcSQL之后。它是一个复杂的应用程序,它根据年份访问特定的表,并根据用户访问特定的数据库。我对SQL很陌生,所以也许有其他我不知道的方法可以使用?

最佳答案

尝试创建一个临时表以临时插入数据,然后从该表中进行选择:

DECLARE @MydynamcSQL varchar(1000);

SET @MydynamcSQL = 'select fieldname1, fieldname1 from table1';

CREATE TABLE #Result
(
  fieldname1 varchar(1000),
  fieldname2 varchar(1000)
)
INSERT #Result Exec(@MydynamcSQL)
SELECT fieldname1, fieldname1 -- here you have "static SELECT with field names"
FROM #Result
DROP TABLE #Result

关于sql - 从动态SQL查询中选择字段名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24252281/

10-10 22:37