0

とにかく私は次のようなことができますか

とにかく、FROM句に変数を入れることができますか?このような

SELECT * FROM myGetTableFunc(@tableName)

SELECT * FROM EXEC('SELECT * FROM ' + @tableName)

SELECT * INTO #myUndeclaredTable FROM @tableName

私はあなたがポイントを得ると思います。

基本的に、ソートキーなどの共有共通列を持ついくつかのテーブルがあります。ストアドプロシージャでは、これらの共有列を使用してテーブルを操作し、いくつかのものを結合してから返します。

ただし、FROM句で変数を使用できないため、現在、テーブルごとに新しいストアドプロシージャが必要になります。すべてを動的SQLに変換する唯一の解決策はありますか?

のようなOPENQUERY OPENROWSETことはできなくなります。

私は次のようなことを考えました

EXEC ('SELECT * INTO #myTempTable FROM ' + @tableName)
SELECT * FROM #myTempTable

しかし#myTempTable、セッション全体の範囲があると思っていたのに、見えないようです。

助けてくれてありがとう!

4

1 に答える 1

1

これを試して:

DECLARE @TableName AS VARCHAR(100)
SELECT @TableName = 'myTable'

EXECUTE ('SELECT * INTO #TEMP  FROM ' + @TableName +'; SELECT * FROM #TEMP;')

これはここから取られたものです:

TSQLは動的SQLから一時テーブルに選択します

そしてここを見てください:

#tempテーブルを動的に作成し、データの挿入に使用します

于 2013-01-15T10:10:37.163 に答える