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 に答える