1

我创建了具有动态列数的数据透视表,但是为了实现我需要创建一个字符串查询并使用 Exec('MyStringQuery') 运行它,这是我可以获得我想要的结果的唯一方法。

现在我想使用我的数据透视表创建一个视图。由于在视图中我无法运行 Exec(myQry)

我想创建一个函数并在那里运行我的查询,然后在我的视图中使用它,但我无法创建一个表变量来将结果放在那里,因为每次运行查询时我的列数都会有所不同。

我怎样才能做到这一点?

create View myView
as
select * from exec(MySP)

当我尝试运行它时,它给了我一个错误。

非常感谢您的意见。

4

2 回答 2

3

我终于找到了我的问题的答案。
我创建了一个 Store 过程并使用了 OpenRowset 并创建了我的视图

Create MyView

AS

SELECT  *FROM 

  OPENROWSET( 'SQLNCLI',
                    'Server=SERVERNAME;Trusted_Connection=yes;',
                    'SET FMTONLY OFF; SET NOCOUNT ON; exec DatabaseName.dbo.MySP @A=1,@B=2')
于 2012-06-19T16:22:39.503 回答
1

你不能用视图来做这件事,对不起。您不能将参数传递给视图,也不能在视图中使用动态 SQL。您也不能在函数中执行动态 SQL,因此它不会在那里工作。恐怕你需要调用一个存储过程来做到这一点。

于 2012-06-18T20:46:43.337 回答